public class UTF8 {
public static void main(String[] args){
String s = "ヨ"; //0xFF6E
System.out.println(s.getBytes().length);//length of the string
System.out.println(s.charAt(0));//first character in the string
}
}
出力:
3
ヨ
これを理解するのを手伝ってください。utf8エンコーディングがJavaでどのように機能するかを理解しようとしています。charcharのjavadoc定義によると、 charデータ型は単一の16ビットUnicode文字です。
Javaのchar型は、2バイトでそれ以下で表現できるUnicode文字のみをサポートできるということですか?
上記のプログラムでは、その文字列に割り当てられたバイト数は3ですが、最初の文字(Javaでは2バイト)を返す3行目では、3バイトの長さの文字を保持できますか?ここで本当に混乱していますか?
java/generalでのこの概念に関する良い参考資料をいただければ幸いです。