>  기사  >  웹 프론트엔드  >  중국어 매개변수를 Action에 전달할 때 문자가 깨질 수 있는 js 문제와 해결 방법을 공유하세요.

중국어 매개변수를 Action에 전달할 때 문자가 깨질 수 있는 js 문제와 해결 방법을 공유하세요.

零下一度
零下一度원래의
2017-04-27 14:55:251722검색

액션은 JSP 형식으로 중국어 매개변수를 얻습니다. 전체 프로젝트가 UTF-8 인코딩 형식을 사용하는 한 잘못된 코드 문제는 없습니다. 그러나 JSP에서는 JS가 사용되며 중국어 매개변수는 JS에서 다음으로 전달됩니다. Action, 중국어 깨짐 문자가 나타납니다.

프로젝트를 작업할 때 Action이 jsp 형식으로 중국어 매개 변수를 얻는다는 것을 알았습니다. 전체 프로젝트가 UTF-8 인코딩 형식을 사용하는 경우. 잘못된 문제는 없습니다. 그러나 JS는 JSP에서 사용되며 JS에서 중국어 매개변수가 Action에 전달되면 중국어 문자가 깨집니다. 바이두에 여러번 물어보니 의견이 많습니다.
연습 후에 다음 방법으로 중국어 문자 깨짐 문제를 해결할 수 있다는 것을 알았습니다.
JSP의 JS에서 중국어 매개변수는 encodeURI(encodeURI(중국어 매개변수))를 사용하며 이는 두 번 트랜스코딩됩니다. 예:

function show(next,id,realName){ 
document.forms['f2'].action="usersearchNextPage?next="+next+"&id="+id+"&realName="+encodeURI(encodeURI(realName)); 
document.forms['f2'].submit(); 
}

여기서 realName은 중국어 매개변수입니다. 따라서 제출된 URL에서 realName이 두 번 트랜스코딩됩니다. encodeURI(encodeURI(realName))
Action: 중국어 매개변수를 수신하면 디코딩합니다. 사용: java.net.URLDecoder.decode(realName, "UTF-8");
예:

String realName = ServletActionContext.getRequest().getParameter("realName"); 
try { 
realName = java.net.URLDecoder.decode(realName,"UTF-8"); 
} catch (UnsupportedEncodingException e1) { 
e1.printStackTrace(); 
}

위 처리 후 문제가 해결되었습니다.

위 내용은 중국어 매개변수를 Action에 전달할 때 문자가 깨질 수 있는 js 문제와 해결 방법을 공유하세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.