サーブレットシリーズの(3)要求パラメータ中国語文字化けし

857 ワード

POST要求文字化けし
解決策:取得パラメータ値メソッドを呼び出す前にrequest.setCharacterEncoding("utf-8");を設定
GET要求文字化け
文字化けしの原因:中国語->UTF-8符号化コミット->バイナリ-->サーババックグラウンドで取得したデータをISO-8859-1で復号(文字化けし)
逆解決策:ISO-8859-1で復号した文字化け->ISO-8859-1で符号化->バイナリ->UTF-8で復号する
  • ソリューション1:tomcat/conf/serverを変更する.xml前提:tomcatサーバプロファイルを変更する権限
      
    
  • が必要です.
  • ソリューション2:逆符号化
      username = request.getParameter("username");
      username = URLEncoder.encode(username, "ISO8859-1");
      username = URLDecoder.decode(username, "utf-8");
    
  • ソリューション3:簡略化(推奨)
        username = new String(username.getBytes("ISO-8859-1"),"utf-8");