JavaWebアプリケーションにおける完全な文字化けソリューション
1383 ワード
せいてきせいぎょ
1,JSPヘッダで宣言:
2,Jspのhtmlコードの中で、UTF-8を宣言します:
3、データベース接続方式はUTF-8に設定します.例えばMYSQLに接続する際の構成URLは以下の通りです.
どうてきせいぎょ
ブラウザから送信されたリクエストパケットは、ブラウザが存在するオペレーティングシステムに基づいて符号化され、様々な形式で符号化される可能性があるため、すべてのブラウザからのリクエスト(request)をutf-8に変換する.重要な一言:
なお、以上の方式はpost方式のみに有効であり、get方式には無効である.
get方式で値を渡す場合の一時的な解決策
get方式で値を転送する際の完全なソリューション-サーバ側の変更
tomcatルートディレクトリにconfディレクトリを見つけ、server.xmlでノードが見つかり、次のように変更されます.
赤字部分を加えると,get方式で値を伝達する際の文字化けし問題を完全に解決できる.ただし、このようなシナリオはサーバ自体の設定の変更であるため、他のプログラムの実行に影響します.
1,JSPヘッダで宣言:
<%@ page contentType="text/html;charset=utf-8" pageEncoding="utf-8" %>
2,Jspのhtmlコードの中で、UTF-8を宣言します:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
3、データベース接続方式はUTF-8に設定します.例えばMYSQLに接続する際の構成URLは以下の通りです.
jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8
どうてきせいぎょ
ブラウザから送信されたリクエストパケットは、ブラウザが存在するオペレーティングシステムに基づいて符号化され、様々な形式で符号化される可能性があるため、すべてのブラウザからのリクエスト(request)をutf-8に変換する.重要な一言:
request.setCharacterEncoding("utf-8")
なお、以上の方式はpost方式のみに有効であり、get方式には無効である.
get方式で値を渡す場合の一時的な解決策
String strDisplay = new String(strParm.getBytes("ISO8859-1"), "utf-8");
get方式で値を転送する際の完全なソリューション-サーバ側の変更
tomcatルートディレクトリにconfディレクトリを見つけ、server.xmlで
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="utf-8" />
赤字部分を加えると,get方式で値を伝達する際の文字化けし問題を完全に解決できる.ただし、このようなシナリオはサーバ自体の設定の変更であるため、他のプログラムの実行に影響します.