0

HTTP GET 要求を介してアップストリーム システムからデータを受信する Java サーブレットがあります。このリクエストには、「text」という名前のパラメータと、テキスト パラメータがどのようにエンコードされたかを示す「charset」という名前の別のパラメータが含まれています。

アップストリーム システムにテキストを送信してサーブレット リクエスト パラメータをデバッグするように指示すると、次のように表示されます。

request.getParameter("charset") == "UTF-16LE"
request.getParameter("text").getBytes() == [0, 84, 1, 0]

この文字列の 2 つの文字のコード ポイント(16 進数) は次のとおりです。

[T]  0054
[Ā]  0100

byte[]これを String に戻す方法がわかりません"TĀ"。を完全に信頼しているわけではなくcharsetUTF-16BE.

4

2 に答える 2

6

String(byteArray, charset)コンストラクターを使用します。

byte[] bytes = { 0, 84, 1, 0 };
String string = new String(bytes, "UTF-16BE");
于 2012-06-19T16:17:20.210 に答える
0

なぜ getBytes() を呼び出しているのですか? パラメータはすでに文字列として持っています。charset を指定せずに getBytes() を呼び出すことは、データを壊す機会にすぎません。

于 2012-06-19T22:35:13.670 に答える