Java 送信でコードが文字化けする問題の解決策

リリース: 2019-12-17 14:54:13
オリジナル
2441 人が閲覧しました

Java 送信でコードが文字化けする問題の解決策

Java での文字化け送信の解決策:

1. 送信方法が post で、文字化けを回避したい場合は、エンコーディングを設定するだけで済みます。サーバー側のリクエスト オブジェクトのクライアント クライアントが送信したエンコードに応じて、サーバー側リクエスト オブジェクトは対応するエンコードで受信されます。たとえば、クライアントが UTF-8 エンコードで送信された場合、サーバー側のリクエスト オブジェクトは、サイドリクエストオブジェクトはUTF-8エンコーディングで受信されます(request.setCharacterEncoding("UTF -8"))

2. 送信メソッドがgetの場合、リクエストオブジェクトのエンコーディングの設定は無効です。は、引き続きデフォルトの ISO8859-1 エンコーディングでデータを受信します。したがって、文字化けを回避したい場合は、データを受信した後、手動で変換する必要があります。手順は次のとおりです:

1).クライアントから送信されたデータを取得すると、文字化けした文字列 data="???è?????"

String data = request.getParameter("paramName");
ログイン後にコピー

2) が得られます。ISO8859-1 コード テーブルを検索し、バイト配列を取得します。クライアントから送信された元のデータの

byte[] source = data.getBytes("ISO8859-1");
ログイン後にコピー

3) バイト配列 String を通じて指定されたエンコーディングで文字を構築し、文字化けを解決します

data = new String(source, "UTF-8");
ログイン後にコピー

次の文字列を構築しますバイト配列で指定されたエンコーディング。ここで指定されたエンコーディングは、データ送信時にクライアントが使用する文字エンコーディングに基づいています。 GB2312 の場合は、 data = new String(source, "GB2312") に設定します。 UTF-8 に設定し、data = new String(source, "UTF-8")

3. クライアント データをサーバーに送信する場合は、フォームを通じて送信するか、例:

<a href="${pageContext.request.contextPath}/servlet/RequestDemo05?userName=gacl&name=房明">点击</a>
ログイン後にコピー

ハイパーリンクをクリックすると、データがget形式でサーバーに送信されるため、受信 中国語のデータを使用すると中国語の文字化けの問題も発生します中国語文字化け問題の解決方法は、上記のgetメソッドでフォーム送信時に中国語データが文字化けする問題の対処方法と同様で、以下のようになります。他にも言及する必要がある点があります。 1 つのポイントは、URL アドレスの後に中国語データが続く場合、以下に示すように、中国語パラメータは URL エンコードを使用して最適に処理されるということです。

String name = request.getParameter("name");
name =new String(name.getBytes("ISO8859-1"), "UTF-8");
ログイン後にコピー

Java の詳細については、

java Basic Tutorial

列に注目してください。

以上がJava 送信でコードが文字化けする問題の解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート