Ajax中国語文字化けし問題解決方案


js:
encodeURIComponent(name);
 
java: String s = new String(request.getParameter("name").getBytes("ISO8859-1"), "UTF-8");
 
//encodeURIComponent UTF 8形式で文字をエンコード
 
js:
encodeURIComponent(encodeURIComponent(name));
 
java:
java.net.URLDecoder.decode(....);
 
//encodeURIComponentメソッドを2回呼び出すとutf-8フォーマットがxx%フォーマットに符号化されます.
 
 
PS:linuxの下にバグが見つかりました
String s = new String(request.getParameter("name").getBytes("ISO8859-1"), "UTF-8");
解かれたのは文字化けしで、winとlinuxで互換性を持ってこの問題を解決します.
 
var data = {name:encodeURI($("#myName").val(),"utf-8")},pwd:"password"};   

String name=URLDecoder.decode(request.getParameter("name"),"utf-8");