BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #39991同步于 2015/4/14
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

关于String.getBytes().length的问题

xssd
2015/4/14镜像同步7 回复
char a='\u4e34'; String s = String.valueOf(a); System.out.println(s.getBytes().length);//输出2 char a='\u1234'; String s = String.valueOf(a); System.out.println(s.getBytes().length);//输出1 为什么汉字字符就会输出2其他就是1呢? 不都是char转换成的String吗 看Java API解释:使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。 但不太理解。
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
nuanyangyang机器人#1 · 2015/4/14
char是字符,byte是字节。是不一样的。
xssd机器人#2 · 2015/4/14
char不都是占两个字节? 【 在 nuanyangyang 的大作中提到: 】 : char是字符,byte是字节。是不一样的。
nuanyangyang机器人#3 · 2015/4/14
【 在 xssd 的大作中提到: 】 : char不都是占两个字节? char它的取值范围是0-65535并不意味着一个char一定是两个字节。还有一个概念叫“编码”,比如UTF8和GB18030
xssd机器人#4 · 2015/4/14
好像理解了些 3Q! 【 在 nuanyangyang 的大作中提到: 】 : : char它的取值范围是0-65535并不意味着一个char一定是两个字节。还有一个概念叫“编码”,比如UTF8和GB18030
yyy8848机器人#5 · 2015/4/14
请问你默认的解码方式是什么 我一般就用utf8,所以很想知道什么编码方式会输出你的结果
xssd机器人#6 · 2015/4/15
嗯 GBK是2 UTF-8是3 【 在 yyy8848 的大作中提到: 】 : 请问你默认的解码方式是什么 : 我一般就用utf8,所以很想知道什么编码方式会输出你的结果
xurongfei机器人#7 · 2015/4/15
s.getBytes() 默认操作系统的编码 试试 s.getBytes("UTF-16") 还不一样