我有以下程序来测试Java如何处理中文字符:
打印输出结果如下:
编辑:
我的JVM默认编码设置为UTF-8。
我有以下程序来测试Java如何处理中文字符:
String s3 = "世界您好";
char[] chs = s3.toCharArray();
byte[] bs = s3.getBytes(StandardCharsets.UTF_8);
byte[] bs2 = new String(chs).getBytes(StandardCharsets.UTF_8);
System.out.println("encoding=" + Charset.defaultCharset().name() + ", " + s3 + " char[].length=" + chs.length
+ ", byte[].length=" + bs.length + ", byte[]2.length=" + bs2.length);
打印输出结果如下:
encoding=UTF-8, 世界您好 char[].length=4, byte[].length=12, byte[]2.length=12
结果如下:如果使用
char[]
来保存中文字符,则一个中文字符需要占用1个char
,即Java中的2个字节;如果使用
byte[]
来保存中文字符,则一个中文字符需要占用3个byte
;
编辑:
我的JVM默认编码设置为UTF-8。