home Glamenv-Septzen(ぐらめぬ・ぜぷつぇん)(archive)

Java/文字コードメモ4

作成日: 2014-09-15 20:15:26   /   last updated at: 2014-09-15 20:56:07
カテゴリ: Java 

Java/文字コードメモ3 に続いたメモ4.

Javaでバイナリデータを文字列として処理する、つまり、バイナリデータ中のASCII文字だけでindexOf()や正規表現が動けば良い場合、byte配列をどのエンコーディングでStringにするのが適切か?

個人的にはISO-8859-1が、0x00 - 0xFFまでひと通り1バイト=1文字でマッピングがされているため、一番安全な解に思える。
重要なのが制御文字や0x80 - 0xFFまでに1バイト=1文字でマッピングされている点。これが無いと、0x80-0xFFのバイト配列→文字列→バイト配列→文字列、と何回か変形した場合に、元に戻らない。

サンプルコード:

参考:

トピックその2:String型とbyte配列の変換って、スレッドセーフか?
基本的に大丈夫だと思うが・・・

なんか、ブロッキングでパフォーマンスが~とかいう話が2006年ごろからまれにあるっぽい。


original url: https://www.glamenv-septzen.net/view/1317