get方式伝値中国語文字化け

1235 ワード

次のようになります.
"bookname" title="${book.bname }"	href="">

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

  • URIEncoding="UTF-8" useBodyEncodingForURI="true"を追加します.私が使っているtomcat 8は、これまでuseBodyEncodingForURI="true"を追加していなかったので、やはり文字化けして、追加後の問題解決!