zshyes 发表于 2015-5-18 10:25:39

ms sql server 数据库查询中文内容返回不正确结果集

大家好!
         请教一下!
         我在查询数据库的某表时 value 值为中文,返回结果集不是正确的,但value值为数字或英文时返回结果集正确。
          表字段:id   namespc
          sql语句:select * from material where name like '$q ' or spc like '$q '
         
          我想是不是字符编码的问题?上网找了一下可以 mb_convert_encoding或iconv ,我的php版本是 5.5.15只支持mb_convert_encoding也做了把input   内容由utf-8转成gbk 但还是查询返回集不正确。后来发现php5.6以后的版本不支持mb_convert_encoding或iconv。
         现在只有把网页的字符编码改成"gbk" <meta charset="gb2312">(v_view是视图面)同时也把ci里的database.php中的'char_set' => 'gb2312'但结果还是错误.
         
         现问题不知如何解决,ci中有无解决的方式?
         



一叶扁舟 发表于 2015-5-18 10:54:01

先确定各部分都用了什么编码然后想办法统一

建议以后统一改用utf8
mysql更新到5.6或者更新版本用utf8mb4的
现在用户开始喜欢用emoji表情,不用utf8mb4的话插入直接乱码

zshyes 发表于 2015-5-18 14:15:22

一叶扁舟 发表于 2015-5-18 10:54
先确定各部分都用了什么编码然后想办法统一

建议以后统一改用utf8


那 ms sql server 2012 中文是什么编码? 如果是gb2312,那我该如何设置呢?

一叶扁舟 发表于 2015-5-18 14:43:40

zshyes 发表于 2015-5-18 14:15
那 ms sql server 2012 中文是什么编码? 如果是gb2312,那我该如何设置呢?

统一改utf8吧,兼容性好……数据库也不差那点存储……

zshyes 发表于 2015-5-29 09:39:30

一叶扁舟 发表于 2015-5-18 14:43
统一改utf8吧,兼容性好……数据库也不差那点存储……


找到问题在那了 是调用存储过程的问题
如数据库查询是调用存储过程并且使用"like" 中文内容 就会出问题。
但如果是直接在php里编写sql语提交就没有问题,可以正确查找。


页: [1]
查看完整版本: ms sql server 数据库查询中文内容返回不正确结果集