理由:
HTTP リクエストが送信されるとき、URL は ISO- になります。 8859-1
エンコードでは、サーバーがバイト ストリームを受信した後、デフォルトで ISO-8859-1
エンコードによって文字ストリームにデコードされます (中国語の文字化けが発生します)。
方法 1:
request.getParameter
( " パラメータ名")
取得された文字列は、まず ISO-8859-1 を使用してバイト ストリームにエンコードされ、次に utf-8 を使用して文字ストリームにデコードされます。
String str = new String(request.getParameter("参数名").getBytes("iso-8859-1"), "utf-8");
これは、トランスコーディングによる文字化け問題に対処するためです。
オンライン学習ビデオ チュートリアルの共有: java ビデオ
方法 2:
Tomcat 構成ファイルを使用して URL エンコード セット (URIEncoding) を設定してエンコードを設定することもできます。この方法もまた、完全に有効です。
Tomcat/conf ディレクトリの server.xml ファイルを変更します
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8444" useBodyEncodingForURI="true" URIEncoding="UTF-8"/>
2 つの属性 userBodyEncodingForURI と URIEncoding に焦点を当てます。
useBodyEncodingForURI パラメータ
は、request.setCharacterEncoding パラメータを使用して、URL によって送信されたデータと URL によって送信されたデータを再エンコードするかどうかを示します。フォーム内の GET メソッド。デフォルトでは、このパラメータは false です。
URIEncoding パラメータ
すべての GET リクエストの均一な再コーディング (デコード) のためのエンコーディングを指定します。
URIEncoding と useBodyEncodingForURI の違い
URIEncoding は、すべての GET リクエスト データの統合された再コーディングです。
useBodyEncodingForURI は、リクエストに応答するページの request.setCharacterEncoding パラメータに基づいてデータを再エンコードします。ページごとに異なる再エンコード コードを使用できます。
おすすめの関連記事とチュートリアル: java エントリー プログラム
以上がURL が Java で中国語パラメータを渡すと文字化けが発生するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。