int ic=new String("a").getBytes().length; 为什么得1,java不是unicode的吗,应该得2吧? int ic=new String("a").getBytes().length; 为什么得1,java不是unicode的吗,应该得2吧? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 .length得到的是字符串的长度啊."a"这个字符串不就一个字符吗?那长度就是1.这与它占几个字节没有关系.长度就是指就是几个字符 对了.说.length得到的有点不确切.length是个属性,不是方法. 数组里面length是属性!难道String里面也是属性吗? byte[] b=new String("a").getBytes();int i=b.length;i得值应该是几? getbyte是用你机器默认的编码方式对java内部的ucs-2字符串进行解码所得到的byte所以这个得到的byte不是unicode编码的字节,而是你机器平台的默认编码方式对应的字节比如GBK或者latin1 String 是一个特殊的类呀,是类怎么会没有方法呢?奇怪... getbyte是用你机器默认的编码方式对java内部的ucs-2字符串进行解码所得到的byte所以这个得到的byte不是unicode编码的字节,而是你机器平台的默认编码方式对应的字节比如GBK或者latin1==========================明白了,string.getbyte()是返回本机默认编码方式的字节。string.getbyte("unicode")是返回unicode编码方式的字节。我感觉,java这个地方做的不好,这个getbyte不应该有2个声明一个就够了 getbyte(string charset=常量) 默认是本机就行了。现在的方式搞得很胡涂。 唉,刚开始用Java做东西,难道又要开始研究一个新的语言的各个方法的细节? 第一个hibernate 程序找不到数据库驱动 知道这个img 是如何和上面的那些js发生关联的 一个关于字符串替换的问题 求一个java实现的资源管理器的源码,类似windows的树状结构.谢谢 GETTABLES怎么用?高手赐教 javaSE问题。。你的基础有多好!!简单问题。。 rs.getString()的问题 MapInfo 下的Java编程? 如何使用Postgres的JDBC驱动? 什么是封装?个人总结,博客http://blog.csdn.net/u014080304 请教:关于页面跳转的权限问题 提问:显示1-100中,能被3整除的整数.下边这个程序####
这与它占几个字节没有关系.长度就是指就是几个字符
length是个属性,不是方法.
难道String里面也是属性吗?
所以这个得到的byte不是unicode编码的字节,而是你机器平台的默认编码方式对应的字节
比如GBK或者latin1
奇怪...
所以这个得到的byte不是unicode编码的字节,而是你机器平台的默认编码方式对应的字节
比如GBK或者latin1
==========================
明白了,string.getbyte()是返回本机默认编码方式的字节。string.getbyte("unicode")是返回unicode编码方式的字节。我感觉,java这个地方做的不好,这个getbyte不应该有2个声明一个就够了 getbyte(string charset=常量) 默认是本机就行了。现在的方式搞得很胡涂。