62,621
社区成员
发帖
与我相关
我的任务
分享
String str = new String("你好吗?");//默认编码是unicode吧?
byte[] data = str.getBytes();//这里获取到的字节数组不存在编码格式的问题吧?
String str2 = new String(data,"GBK");//str2的字符编码是GBK的格式?
//那么如何获取str2的编码格式呢?
String str=new String("你好吗?");//默认编码是unicode吧?
//"你好吗?"是一个字符串,他的每一个字符都对应一个唯一的序号--两个字节(unicode规则),String类就是处理这些序号的。
byte[] data= str.getBytes();//这里获取到的字节数组不存在编码格式的问题吧?
//字节数组。本身并没有编码格式,其实只有进行字符和字节的转化时才有这个概念,但按不同的编码取的数组是不同的。
String str2=new String(data,"GBK");//str2的字符编码是GBK的格式?//那么如何获取str2的编码格式呢?
//还是最上面那句话,java.lang.String 处理的是 UNICODE 字符串;这个语句会把字节数组data按“gbk”的编码形式来转成字符串,而String类还是把这个字符串按unicode来处理,
//第二个问题也就不是问题了,str2并没有编码格式。。一定要说有的话,就只是unicode,永远都是
String str = new String("你好吗?");//默认编码是unicode
byte[] data = str.getBytes();//平台默认编码 eclipse是gbk,windows下记事本也是gb2312(gbk的子集)
String str2 = new String(data,"GBK");//str2的字符编码是unicode(java默认编码)
//貌似不好获取。java中所有的东西都是unicode存储的。 String可以看源码是 char[]数组存储的。
?