Bagaimana Anda menyandikan URL di Android?
Saya pikir itu seperti ini:
final String encodedURL = URLEncoder.encode(urlAsString, "UTF-8");
URL url = new URL(encodedURL);
Jika saya melakukan hal di atas, http://
in urlAsString
digantikan oleh http%3A%2F%2F
in encodedURL
dan kemudian saya dapatkan java.net.MalformedURLException
ketika saya menggunakan URL.
Uri.encode(query);
sebagai gantinya.Saya akan menambahkan satu saran di sini. Anda dapat melakukan ini yang menghindari keharusan mendapatkan perpustakaan eksternal.
Cobalah ini:
Anda dapat melihat bahwa di URL khusus ini, saya harus memiliki ruang-ruang yang disandikan agar saya dapat menggunakannya untuk permintaan.
Ini memanfaatkan beberapa fitur yang tersedia untuk Anda di kelas Android. Pertama, kelas URL dapat memecah url menjadi komponen yang tepat sehingga Anda tidak perlu melakukan pekerjaan pencarian / penggantian string. Kedua, pendekatan ini mengambil keuntungan dari fitur kelas URI dari komponen yang lolos dengan benar ketika Anda membangun URI melalui komponen daripada dari string tunggal.
Keindahan dari pendekatan ini adalah bahwa Anda dapat mengambil string url yang valid dan membuatnya bekerja tanpa perlu pengetahuan khusus tentang itu sendiri.
sumber
Untuk android, saya akan menggunakan String android.net.Uri.encode (String s)
Ex/
sumber
Uri.encode("a=1&b=1")
menghasilkana%3D1%26b%3D1
tetapi diharapkana=1&b=1
a=1&b=1
sebagai kueri, Anda ingin menanyakannya dengan tepat.Anda juga dapat menggunakan ini
itu metode yang paling sederhana
sumber
sumber
Anda dapat menggunakan metode di bawah ini
atau
yang kedua lebih baik dari yang pertama.
sumber
Temukan karakter bahasa Arab dan gantikan dengan pengkodean UTF-8. sesuatu seperti ini:
sumber