okinawa

勉強メモ

文字コードで混乱した

混乱したところ

文字化け済みの文字にgetBytes("UTF-8")とかやってもしょうがないんだよ。

化けた文字を別の文字コードに変換してるだけだから、別の文字コードでまた化けた文字ができるだけ。

文字化けしてるってことはめちゃくちゃなバイト配列になってるから、それにエンコードかけてもまた変なバイト配列ができるってことね。

基本

基本的には開発環境の文字コードとファイルの文字コードを合わせればOK。

例えばEclipseでtest.propertiesファイルを見たら文字化けしてた!という時。

まずはEclipseUTF-8にする。

test.propertiesファイルをサクラエディタとかで開いて、UTF-8に設定する。そして中身を編集して保存する。

これだけで普通はOK。

文字を別の文字コードでバイト配列に変換して、また文字に戻す

String str = "あ";
byte[] bytes = str.getBytes("UTF-8"); // UTF-8でバイト配列に変換
String str2 = new String(bytes, "UTF-8"); //文字に戻す

// 元の文字が文字化けしてなければ、どの文字コードでも変換できるはず?
byte[] bytes = str.getBytes("SJIS");
String str2 = new String(bytes, "SJIS");

qiita.com

www.sejuku.net

Unicodeとは

文字コードの規格の1つ。

Unicode規格で策定されたUTFにはUTF-8UTF-16UTF-32の3種類がある。

符号化文字集合Unicode

文字符号化方式UTF-7UTF-8UTF-16UTF-32

ということらしい。

https://wa3.i-3-i.info/word11422.html