프로젝트 작업을 할 때 Action이 jsp 형식으로 중국어 매개변수를 얻는다는 사실을 발견했습니다. 전체 프로젝트가 UTF-8 인코딩 형식을 사용하는 한 잘못된 코드 문제는 없습니다. 그러나 JS는 JSP에서 사용되며 중국어 매개변수는 다음과 같습니다. JS에서 Action으로 전달되었습니다. 중국어에 혼동이 있습니다. 바이두에 여러번 물어보니 의견이 많습니다.
연습 후에 다음 방법으로 중국어 문자 왜곡 문제를 해결할 수 있음을 발견했습니다.
JSP의 JS: 중국어 매개변수는 두 번 트랜스코딩되는 encodeURI(encodeURI(중국어 매개변수))를 사용합니다. 예를 들어:
다음과 같이 코드 코드를 복사합니다.
함수 표시(다음,ID,실제 이름){
document.forms['f2'].action="usersearchNextPage?next="+next+"&id="+id+"&realName="+encodeURI(encodeURI(realName));
document.forms['f2'].submit();
}
여기서 realName은 중국어 매개변수입니다. 따라서 제출된 URL에서 realName이 두 번 트랜스코딩됩니다. encodeURI(encodeURI(실제 이름))
실행 중: 중국어 매개변수를 수신할 때 디코딩합니다. 사용: java.net.URLDecoder.decode(realName, "UTF-8");
좋다:
다음과 같이 코드 코드를 복사합니다.
String realName = ServletActionContext.getRequest().getParameter("realName");
노력하다 {
realName = java.net.URLDecoder.decode(realName,"UTF-8");
} 잡기(UnsupportedEncodingException e1) {
e1.printStackTrace();
}
위 처리 후 문제가 해결되었습니다.