5

UTF8 でエンコードされた文字列がありますが、cp1251 でランタイム プロセスにパラメーターを送信する必要があります。文字列またはバイト配列をデコードするにはどうすればよいですか?

次のようなものが必要です。bytesInCp1251 = encodeTo(stringInUtf8, "cp1251");


ありがとうございます!これは私自身の解決策です:

OutputStreamWriter writer = new OutputStreamWriter(out, "cp1251");
writer.write(s);
4

3 に答える 3

9

Javaには「UTF8でエンコードされた文字列」というものはありません。Java 文字列は内部的に UTF-16 を使用しますが、特定のエンコーディングのない抽象化として見なされるべきです。String がある場合は、既にデコードされています。エンコードする場合は、 を使用しますstring.getBytes(encoding)。元のデータが UTF-8 である場合、そのデータをバイトから文字列に変換するときにそれを考慮する必要があります。

于 2010-10-26T09:32:59.837 に答える
5
byte[] bytesInCp1251 = stringInUtf8.getBytes("cp1251");
于 2010-10-26T09:24:12.743 に答える
1

これで解決です!

OutputStreamWriter writer = new OutputStreamWriter(out, "cp1251");
writer.write(s);
于 2010-10-26T09:41:26.343 に答える