ホームページ  >  記事  >  Java  >  URL が Java で中国語パラメータを渡すと文字化けが発生する

URL が Java で中国語パラメータを渡すと文字化けが発生する

王林
王林オリジナル
2019-12-05 14:05:032294ブラウズ

URL が Java で中国語パラメータを渡すと文字化けが発生する

理由:

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。