织梦中文分词 输入的词语返回乱码怎么办
织梦的中文分词 ,词库中明明有烦恼 ,忧愁这样的词语 ,但是测试输入 ,返回乱码 ,不知道是怎么回事 ,还有这样的代码 else if($n>0xA13F && $n < 0xAA40) , 其中 0xA13F ,0xAA40 是怎么来的 。
------解决方案--------------------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 的
这样就不需要研究算法了