日期:2014-05-17  浏览次数:20589 次

织梦中文分词 输入的词语返回乱码怎么办
织梦的中文分词 ,词库中明明有烦恼 ,忧愁这样的词语 ,但是测试输入 ,返回乱码 ,不知道是怎么回事   ,还有这样的代码  else if($n>0xA13F && $n < 0xAA40) , 其中 0xA13F ,0xAA40 是怎么来的 。
php中文分词,织梦中文分词

------解决方案--------------------
if($n>0xA13F && $n < 0xAA40) 是全角符号

他用的是 gbk 字符集,如果你不是的,那一定会乱码的
------解决方案--------------------
他首先用 ReviseString 方法对传入串做预处理
其中有
        //如果中文字符
        if(isset($str[$i+1])){
          $c = $str[$i].$str[$i+1];
就是说他认为一个中文是由两个字节组成的,这是 gbk 的编码规则
而一个非 ascii 的 utf-8 字符可以是 2个、3个、4个...字节组成
汉字的 utf-8 多由 3 个字节组成

你只把文件内容改为 utf-8 的,没有改变处理规则
出现乱码不就是很正常的了吗?
------解决方案--------------------
调用前将 utf-8 转成 gbk 的
调用后在把 贵宾卡 转成 utf-8 的
这样就不需要研究算法了