Saat mengerjakan sebuah proyek, saya menemukan bahwa Action memperoleh parameter berbahasa Mandarin dalam bentuk jsp. Selama seluruh proyek menggunakan format pengkodean UTF-8, tidak akan ada masalah kode yang kacau, namun JS digunakan dalam JSP dan parameter berbahasa Mandarin diteruskan dari JS ke Action. Setelah beberapa kali bertanya pada Baidu, banyak pendapat yang muncul.
Setelah berlatih, saya menemukan bahwa metode berikut dapat menyelesaikan masalah karakter Cina yang kacau:
Di JS JSP: Parameter China menggunakan encodeURI (encodeURI(Parameter China)), yang ditranskode dua kali. Misalnya:
Copy kode kodenya sebagai berikut:
fungsi tampilkan(berikutnya,id,Nama asli){
document.forms['f2'].action="usersearchNextPage?next="+next+"&id="+id+"&realName="+encodeURI(encodeURI(realName));
dokumen.forms['f2'].submit();
}
Dimana realName adalah parameter Cina. Oleh karena itu, realName ditranskode dua kali dalam URL yang dikirimkan. encodeURI(encodeURI(Nama asli))
Sedang Beraksi: Dekode saat menerima parameter berbahasa Mandarin. Gunakan: java.net.URLDecoder.decode(nama asli, "UTF-8");
menyukai:
Copy kode kodenya sebagai berikut:
String realName = ServletActionContext.getRequest().getParameter("realName");
mencoba {
realName = java.net.URLDecoder.decode(nama asli,"UTF-8");
} tangkapan (Tidak DidukungEncodingException e1) {
e1.printStackTrace();
}
Setelah pemrosesan di atas, masalahnya terpecahkan.