今天在做模糊查询时发现在 php + mssql + utf-8 中使用了中文就无数据返回,但是把 sql 句子输出直接到查询分析器里面执行是有数据返回的。由于涉及到中文所以第一时间就想到这是编码影响的,马上把关键字换为英文字母(当然字母是在字段记录中 存在的),就有数据返回。虽然找到原因了,但是解决问题过程中我还是郁闷了半天,我明明都把它们设为 utf-8 编码了,怎么还会出现这问题呢?问题是另外一个表,字段类型跟这个表是一样的,就有数据返回。
尝试了很多方法都无解后,就直接把关键字转了编码,LIKE '%" . iconv('utf-8', 'gbk', $keywords) . "%'" ,这样就成功返回数据了。看来 php 跟 mssql 还真是门不当户不对,我遇到的问题就多多的,加油换数据库吧1