Masalah: Teks bahasa Cina yang dihantar oleh Android ke pelayan latar belakang dinyahkodkan kepada aksara yang bercelaru. .
Persekitaran:
1. tomcat,在server.xml中已经明确了“utf-8".
2. 安卓已经明确了使用Utf-8编码
3. 在后台使用` java.net.URLDecoder.decode(url, "utf-8");`对url进行解码,但是解码出错。。中文是”??“。
Sepatutnya masalah pengekodan, tetapi. . .
Terima kasih banyak-banyak. . .
Selain itu, saya menggunakan pernyataan berikut untuk menguji pengekodan:
if (url.equals(new String(url.getBytes("iso8859-1"), "iso8859-1"))) {
url = new String(url.getBytes("iso8859-1"), "utf-8");
System.out.println("ios8859-1");
}
if (url.equals(new String(url.getBytes("GB2312"), "GB2312"))) {
url = new String(url.getBytes("GB2312"), "utf-8");
System.out.println("gb2312");
}
Output
ios8859-1
gb2312
. . . .
Adakah terdapat penapis pengekodan ditambahkan pada latar belakang?
URLEncode/Decode adalah untuk nilai parameter dalam URL untuk mengelakkan konflik dengan format URL itu sendiri. Tomcat akan secara automatik menyahkod nilai parameter URL, jadi anda hanya perlu mendapatkannya secara terus. Contohnya, JSP ini:
Sebenarnya, tiada perbezaan antara dua pautan "Hello" Anda boleh membuka kod sumber halaman web untuk melihat alamat pautan mereka dan yang satu lagi tidak nilai yang betul, yang bermaksud
request.getParameter("name")
Kandungan yang terhasil adalah betul-betul sama.