เมื่อทำงานในโครงการ ฉันพบว่า Action ได้รับพารามิเตอร์ภาษาจีนในรูปแบบ jsp ตราบใดที่โครงการทั้งหมดใช้รูปแบบการเข้ารหัส UTF-8 จะไม่มีปัญหารหัสที่อ่านไม่ออก อย่างไรก็ตาม JS ถูกใช้ใน JSP และพารามิเตอร์ภาษาจีน ส่งต่อจาก JS สู่ Action มีความสับสนในภาษาจีน หลังจากถาม Baidu หลายครั้ง ก็มีความคิดเห็นมากมาย
หลังจากฝึกฝน ฉันพบว่าวิธีการต่อไปนี้สามารถแก้ปัญหาตัวอักษรจีนที่อ่านไม่ออกได้:
ใน JS: พารามิเตอร์ภาษาจีนของ JSP ใช้ encodeURI (encodeURI (พารามิเตอร์ภาษาจีน)) ซึ่งถูกแปลงรหัสสองครั้ง ตัวอย่างเช่น:
คัดลอกรหัสรหัสดังต่อไปนี้:
ฟังก์ชั่นแสดง (ถัดไป, id, ชื่อจริง) {
document.forms['f2'].action="usersearchNextPage?next="+next+"&id="+id+"&realName="+encodeURI(encodeURI(realName));
document.forms['f2'].ส่ง();
-
โดยที่ realName คือพารามิเตอร์ภาษาจีน ดังนั้น realName จะถูกแปลงรหัสสองครั้งใน URL ที่ส่งมา encodeURI(encodeURI(ชื่อจริง))
ในการใช้งานจริง: ถอดรหัสเมื่อรับพารามิเตอร์ภาษาจีน ใช้: java.net.URLDecoder.decode(realName, "UTF-8");
ชอบ:
คัดลอกรหัสรหัสดังต่อไปนี้:
สตริง realName = ServletActionContext.getRequest().getParameter("realName");
พยายาม {
realName = java.net.URLDecoder.decode(realName,"UTF-8");
} จับ (UnsupportedEncodingException e1) {
e1.printStackTrace();
-
หลังจากการประมวลผลข้างต้น ปัญหาจะได้รับการแก้ไข