get方式伝値中国語文字化け
1235 ワード
次のようになります.
問題の説明:ハイパーリンクをクリックするとservletに値が伝わり、serveltで
解決方法: 方法1:get方式でコミットされたパラメータ符号化はiso 8859-1符号化のみをサポートする.だから、もし中に中国語が入っていたら.バックグラウンドでは符号化を変換する必要があります.次の 方法2:クライアントでURLEncoderを使用する.Encode(「中国語」,「UTF-8」)は中国語のパラメータを符号化し、サーバ側でこのことを復号する必要がある.setName(java.net.URLDecoder.decode(name, “UTF-8”)); 面倒くさい! 方法3:tomcatのserverを修正する.xmlファイル:
"bookname" title="${book.bname }" href="">
問題の説明:
request.getParameter("bname");
で取得した中国語文字が「?」と表示されます.解決方法:
String bname = request.getParameter("bname");
bname = new String(bname .getBytes("iso8859-1"),"utf-8");
の前提は、あなたのページ符号化がutf-8であることです.gbkであれば、上のコードの後にgbkに変更します.But修正後も私の問題は解決していませんが、続けてください...
URIEncoding="UTF-8" useBodyEncodingForURI="true"
を追加します.私が使っているtomcat 8は、これまでuseBodyEncodingForURI="true"
を追加していなかったので、やはり文字化けして、追加後の問題解決!