可能你的项目有些文件是其他编码,例如中文系统默认的gbk(codepage 936)
如果在gbk里面echo $somestring到utf8页面,很可能出现乱码 呵呵!12楼、13楼的兄弟,可能你们没有亲身试用过连MSSQL。
编码一致的问题,我是明白的。之前,我所有的编码都是UTF-8的,可就是MSSQL数据库的编码你是调整不了的,因为,MSSQL server 只支持GBK或GB2312(这个hex在前面也说过的)
所以老是到最后,要么插入到MSSQL数据库是乱码,要么从MSSQL数据库取出来数据显示到页面是乱码。
这中间就是少了(我认为:utf-8的中文数据在插入到MSSQL数据库时要转为GBK或GB2312的 另外 从MSSQL数据库取出来中文字(是GBK或GB2312的编码字)要转成UTF-8的编码字显示到页面)
目前,为了省去那么多转字符集的麻烦
我把我工程下所有文件都换成了GB2312的编码了(这也是将就MSSQL才这样做的)
这样问题就解决了!
我的建议是codeigniter 应在以后版本里 在db_drivers里
如果DB驱动选择的是MSSQL 应该自动为我们用户 转一下
以下是codeigniter中mssql_driver.php,mysql_driver.php两个文件中db_set_charset方法(请大家自己对比)
mssql_driver.php:
function db_set_charset($charset, $collation)
{
// @todo - add support if needed
return TRUE;
}
mysql_driver.php:
function db_set_charset($charset, $collation)
{
return @mysql_query("SET NAMES '".$this->escape_str($charset)."' COLLATE '".$this->escape_str($collation)."'", $this->conn_id);
} 呵呵!12楼、13楼的兄弟,可能你们没有亲身试用过连MSSQL。
编码一致的问题,我是明白的。之前,我所有的编码都是UTF-8的,可就是MSSQL数据库的编码你是调整不了的,因为,MSSQL server 只支持GBK或GB2312(这个hex ...
chunlei85 发表于 2009-5-15 14:18 http://codeigniter.org.cn/forums/images/common/back.gif
开玩笑呢?你?
我几年前就开始用php+mssql开发网站了,就是因为mssql不支持utf-8,所以前面才告诉你,所有页面都要gbk化才不出错,你都没理解我的意思
这个站我是用php+mssql写的,无乱码http://www.wdi8.com 兄弟 visvoy ,
其实我的意思也是说:php+mssql开发,最好弄成GBK或GB2312的统一编码。
如果非有用UTF-8的编码,在跟MSSQL打交道的时候都要转一次,不像直接用GBK编码的方便。
页:
1
[2]