$.post("3.jsp", { 이름: "中文" },function(응답){
alert(응답);
})
결과: 올바르게 표시됨
$.post("3.jsp", "name=中文",function(response){
alert(response);
})
결과: 올바른 표시
3. 필터 사용
코드 복사 코드는 다음과 같습니다. 다음과 같습니다:
public void doFilter(ServletRequest 요청, ServletResponse 응답,
FilterChain 체인) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest)
if (req; .getHeader("X-Requested -With") != null && req.getHeader("X-Requested-With").equalsIgnoreCase("XMLHttpRequest")) {
request.setCharacterEncoding("utf-8");
} else {
request.setCharacterEncoding("gbk");
}
chain.doFilter(request, response)
}
jQuery는 ajax Add X-Requested-With를 사용할 때 헤더의 값은 XMLHttpRequest입니다. 필터가 jQuery의 ajax 요청이라고 판단하면 문자 인코딩이 utf8로 설정되어 제출 후 중국어 문제를 해결할 수 있습니다. request.setCharacterEncoding(( "UTF-8");을 설정할 필요가 없습니다.
get 메소드의 중국어 문자 깨짐 문제에 대해서는 중국어를 제출할 때 get 메소드를 사용하지 않고 게시하는 것을 권장합니다. 대신 ^-^
prototype.js가 중국어를 처리하는 방식과 일관성을 유지하려면 다음 방법을 사용하여
$.ajax({
url: "3.jsp",
유형: "post",
data: {name:"中文"},
beforeSend: function(XMLHttpRequest){
XMLHttpRequest.setRequestHeader("RequestType", "ajax")
alert( "시작");
},
성공: function(data, textStatus){
alert(data)
},
error: function(XMLHttpRequest, textStatus, errorThrown) 🎜>alert("오류: " textStatus);
},
complete: function(XMLHttpRequest, textStatus){
alert("Complete:" textStatus)
}
});
필터 코드는 다음과 같습니다.
public void doFilter(ServletRequest 요청, ServletResponse 응답, FilterChain 체인) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) 요청; req.getHeader("RequestType") != null && req.getHeader("RequestType").equalsIgnoreCase("ajax"))) {
request.setCharacterEncoding ("utf-8")
} else {
request.setCharacterEncoding("gbk");
}
chain.doFilter(요청, 응답)