查了一大堆,糊里糊涂的。现在知道以下几点:
java采用unicode编码,占两个字节,编码范围是0x0000到0xFFFF,但一共才65536个数,怎么可能表达世界上所有语言文字呢,于是又冒出来一个增补码,占4个字节,范围是0x100000到0x10FFFF。那么现在假设有一个中文,范围超出了65535,那么它到底是怎么编码的,占几个字节,是几个char?
业精于勤,荒于嬉;行成于思,毁于随。
public static void main(String[] args) throws Exception{ System.out.println("
通常、中国語ではエンコード形式を UTF-8 に設定します。Java では 1 つの漢字が 2 文字と 3 バイトを表します。
public static void main(String[] args) { 文字列 str = "テスト"; System.out.println(str.getBytes().length); }
出力: 6さまざまなエンコード形式によって占有されるバイト数については、ブログを参照してください: さまざまなエンコード形式によって占有されるバイト数
UTF-8 3 つGBK 2 つ
通常、中国語ではエンコード形式を UTF-8 に設定します。Java では 1 つの漢字が 2 文字と 3 バイトを表します。
出力: 6
さまざまなエンコード形式によって占有されるバイト数については、ブログを参照してください:
さまざまなエンコード形式によって占有されるバイト数
UTF-8 3 つ
GBK 2 つ