首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

JAVA中的编码解决思路

2012-03-17 
JAVA中的编码public class code{public static void main(String[] args) throws Exception {String s

JAVA中的编码
public class code
{
public static void main(String[] args) throws Exception {
String s = "abc你好么"; 
byte[] bytes1 = s.getBytes("Unicode"); 
System.out.println(bytes1.length); // 14 
byte[] bytes2 = s.getBytes(); 
System.out.println(bytes2.length); // 9 
}
}
这段代码中,,unicode占两个字节那怎么输出是14应该是12吧???
那默认的为什么又不是unicode编码的呢??

[解决办法]
UNICODE标准定义了UTF-8、UTF-16、UTF-32三种编码格式

byte[] bytes1 = s.getBytes("UTF-8"); 
System.out.println(bytes1.length); // 12

byte[] bytes1 = s.getBytes("UTF-16"); 
System.out.println(bytes1.length); // 14 

采用的编码方式不一样,结果就不一样

getBytes() 
按照平台缺省的字符编码方式把该 String 转换成字节,并把结果存到一新的字节数组中。
[解决办法]
应该是编码格式不一样,表达的内容虽然一样,但占用空间不一样
[解决办法]
Unicode是UTF-16,多余两个字节是保存大头小头信息的吧,猜测~

热点排行
Bad Request.