发布于 2014-08-09 15:24:10 | 1221 次阅读 | 评论: 3 | 来源: 网友投递

这里有新鲜出炉的精品教程,程序狗速度看过来!

ThinkPHP开源PHP框架

ThinkPHP是一个开源的PHP框架,是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。ThinkPHP可以支持windows/Unix/Liunx等服务器环境,正式版需要PHP5.0以上版本支持,支持MySql、PgSQL、Sqlite以及PDO等多种数据库


本文讲解了thinkphp框架操作sql server数据库出现乱码的解决方法,感兴趣的同学参考下.

原因分析:

thinkphp查询mssql数据库出现乱码的原因是ThinkPHP默认为UTF-8,而msmsql数据库是简体中文版,存储的是GB2312编码

解决方法:

1:在ThinkPHPLibCore 打开Db.class.php,在其最后面加上
2:在Db.class.php找到function select(),在$result = $this->query($sql);后面加一条 $result=iconv2utf8($result),就OK了

 

代码如下:

public function iconv2utf8($Result) {       
 $Row=array();                  
 $key1=array_keys($Result);  //取查询结果$Result的数组的键值         
 //print_r($key1);         
 $key2=array_keys($Result[$key1[0]]);  
 //取查询结果$Result的第一个数组($key1[0])的键值          
 //print_r($key2);                 
 for($i=0;$i<count($key1);$i++) { 

  for($j=0;$j<count($key2);$j++) {                       
   //取查询结果编码改为UTF-8,并存入$Row,且$Row与$Result键与值一致                     
   $Row[$key1[$i]][$key2[$j]]=iconv('gb2312','utf-8',$Result[$key1[$i]][$key2[$j]]);
  }        
 }      
 retrun $Row; 
}

 



最新网友评论  共有(3)条评论 发布评论 返回顶部
PHPERZ网友 发布于2014-09-15 08:01:04
补充:public function iconv2utf8($Result)这个函数我已经添加了的
支持(0)  反对(0)  回复
PHPERZ网友 发布于2014-09-15 03:59:27
您好,按您的方法试了下,提示: 调用了未定义的函数iconv2utf8,这个问题怎么解决呢?
  • 2楼  fe 回复于2014-10-24 19:02:36
    你要用$this->iconv2utf8
  • 支持(1)  反对(0)  回复

    Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务