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