1. ホーム
  2. java

JavaでISO-8859-1とUTF-8を変換するにはどうしたらいいですか?

2023-09-21 12:54:24

質問

Javaで文字列をISO-8859-1からUTF-8に変換して戻す方法を知っている人はいますか?

私はウェブから文字列を取得し、RMS(J2ME)に保存していますが、私は特殊文字を保持し、RMSからISO-8859-1エンコーディングの文字列を取得したいです。どうすればよいのでしょうか?

どのように解決するのですか?

一般に、これはできません。UTF-8 はあらゆる Unicode コードポイントをエンコードすることができます。ISO-8859-1 はそのうちのごく一部しか扱うことができません。ですから、ISO-8859-1からUTF-8にトランスコードすることは問題ありません。UTF-8 から ISO-8859-1 に戻すと、サポートされていない文字が見つかったときに、テキストに "置換文字" (�)が表示されるようになります。

テキストをトランスコードするには

byte[] latin1 = ...
byte[] utf8 = new String(latin1, "ISO-8859-1").getBytes("UTF-8");

または

byte[] utf8 = ...
byte[] latin1 = new String(utf8, "UTF-8").getBytes("ISO-8859-1");

より多くの制御を行うには、低レベルの Charset の API を使うことで、さらに制御することができます。例えば、エンコードできない文字が見つかったときに例外を発生させたり、置換テキストに別の文字を使用したりすることができます。