1

文字列に変換する必要があるバイト配列があります。その配列は、Windows-1257 でエンコードされたテキストで構成されています。この配列を文字列に変換する最良の方法は何ですか? 後で、文字列を ISO-8859-13 バイト配列に変換する必要がありますが、この部分をジョブにする方法は知っています。

私はこのように試しました:

String result = new String(currentByteArray, "ISO-8859-13");

でももちろん、ご当地キャラの場所でゴミをもらいました。

4

1 に答える 1

3
String unicodeString = new String(currentByteArray, "Windows-1257");
byte[] result = unicodeString.getBytes("ISO-8859-13");

また

PrintWriter out = new PrintWriter(file, "ISO-8859-13");

Java は非常に単純です。String/Reader&Writer は、すべての文字を含むことができる Unicode テキストです。binary byte[]s/InputStream&OutputStream はバイナリ データ用です。

したがって、バイトの String コンストラクターには、これらのバイトの元のエンコーディングが必要であり、バイトを取得するには、それらのバイトがあるべきエンコーディングが必要です。

エンコードせずに、1 つのパラメーターでオーバーロードされたバージョンがあることに注意してください。これはプラットフォームのエンコーディングを使用します。ポータブルではありません。

于 2013-09-28T11:04:36.323 に答える