java プロジェクトでは、パッケージ化された POST リクエストのメソッドがあります。
元々は問題ありませんが、後続の使用中に、パラメータの値が中国語の場合、受信側で文字化けが発生することがわかりました。コードを確認すると、問題がこの行で発生していることがわかります。
out.writeBytes(text + "\r\n");
writeBytesのソースコードを確認すると、文字列 s の各文字が byte 型に強制変換され、高い 8 ビットが破棄されます。例外が発生しない場合、カウンタwrittenはsの長さだけ増加します。
中国語の文字は 16 ビットであり、byte 型は 8 ビットであるため、文字が中国語の場合、切り捨てられて文字化けが発生します。いくつかのログを追加して、変換後の byte 配列を確認してみましょう。
最終的に、中国語の文字が強制変換されると、8 ビットが失われ、文字化けが発生することがわかります。したがって、文字列を byte 配列に変換してから出力ストリームに書き込む解決策を採用します。