项目的各环节编码如下:

1.ThinkPHP默认为UTF-8

2.ThinkPHP的模板文件使用的编码UTF-8

3.数据库是简体中文版,存储的是GB2312编码

根据这些可以分析出乱码是因为编码不一致导致的。现在就是要将从数据库中取出的结果从GB2312转为UTF-8即可。

查询了TP的手册发现其有个内置的函数auto_charset。

在DbMssql类中的getAll方法中将代码:

 

 
  
  1. $result[]   =   $row

修改为:

 

 
  
  1. $result[] = auto_charset($row, gb2312, utf8)