问题就是你如何判断哪个字符开始是汉字、这个汉字到哪个字符结束啊。汉字有各种各样不同的编码,有的是固定是16位整数,那好办,但有的不是,utf-8编码就是不定长的,有的汉字是2个字节的,有的是3个字节的,甚至4个字节的也有,这样你就得从第1个字节的规律去看应是多少个字节才算是一个完整的汉字。这还算是小意思,还有中英文夹杂的字符串,你还要分别针对是普通ascii字符还是汉字分别计算——Unicode-16编码的ASCII字符也是2个字节的。
晕了吗?怎么做,关键是首先要知道当前使用的是什么编码系统!
注:Windows内部固定使用Unicode-16编码,所有字符都是16位的,包括ASCII也是,但针对控制面板设置不同的代码页,对外表现不同的编码系统,系统内部自动转换编码。对中文而言,更麻烦,历史原因,有多种不同的编码,同样的字都有不同的编码。大陆中文版的Windows通常用GB2312,但互联网上的网页一般是utf-8,也有的程序设置成使用Unicode-16(与GB2312是不同的)。
[
本帖最后由 TonyDeng 于 2013-7-23 12:50 编辑 ]