今天花了半天功夫才搞定2個亂碼問題java
1. 原先一直用form提交,如今改做JQuery ajax 提交,發現亂碼。ajax
2. window.location url中含有中文提交後,亂碼。jsp
第一個問題:url
ajax端,參數須要使用: encodeURI()spa
$.ajax({ url: "/hello.do", data: { "code": $('#code').val(), "name": encodeURI($('#name').val()), //use encodeURI }, type: "POST", dataType: "text" }).done(function(data){ console.log(data); });
Servelt 端,須要使用URLDecoder.decode():.net
String name = request.getParameter("name");
name = java.net.URLDecoder.decode(name,"UTF-8"); //use URLDecoder with UTF-8
第二個問題,同理,不一樣的是。code
Javascript 端:參數須要使用2次: encodeURI()orm
window.location="/demo.jsp?FeedBack=" + encodeURI(encodeURI(res));
Servelet端:blog
String feedback = request.getParameter("FeedBack");
feedback = java.net.URLDecoder.decode(feedback,"UTF-8"); //use URLDecoder
over!ip