Java编码
Unicode是全球标准字符集,是Java所为String采用的编码方式,任何字符用2个字节表示。String实例中保存有一个char[]字符数组。string.getByte()方法可以获得到这个字符串实例在指定编码下的字节数组,注意的是不带参数的getByte方法使用OS默认的字符集,比如GB2312(简体中文)。所以要得到Unicode下的字节数组,需要这样:string.getBytes(“unicode”)(此处注意见下文)。如果使用new String(byte[], Charset)构造,可以将已知编码的字节数组重新拼成一个String实例,即用指定的Charset去组合字节为Unicode字符罢了。同理,不带Charset的String构造使用OS默认字符集。
因此,得到UTF-8的字节数组,按以下步骤:
1 | String str = "梦"; |
所以,str = new String(str.getBytes(Charset), Charset) 什么都没有做,除了新建了个String对象。
但是如果你要获取unicode的字节数组,却有非常多的选择,而且很容易出错。
1 | void echoBytesTest() { |