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