日期:2014-05-20  浏览次数:20549 次

关于字符串代码点和代码单元的问题,迷糊中
一个字符串的length()返回的是代码单元的个数,
而codePointCodeCount(0,length())返回的是代码点的个数,如果一个字符串包含
4个字符,其中一个字符占用两个代码单元,那么这个字符串的代码单元数是5个,代码点的个数是4个,其中一个代码点占用了两个代码单元。不知道这么理解对不对。
如果是对的,那么一个代码单元应该占用多少个字节呢,UTF-16编码里,是不是一个英文字母占用一个字节,而一个汉字(非特殊)占用两个字节。如果一个字符串
a= "m马li ",其中m应该占用一个代码单元占用空间是1个字节,那么按理说 "马 "应该占用两个代码单元啊,那为什么a.length()返回的是4而不是5呢,迷糊中。。大侠帮小弟解释一下。

------解决方案--------------------
length()是返回字符个数,不是字节数
------解决方案--------------------
length返回的是代码单元的个数~~`