|
楼主 |
发表于 2009-5-15 14:18:24
|
显示全部楼层
呵呵!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);
} |
|