Sql server Codeigniter/linux/mssql 2005-无本地字符(二进制标记)

Sql server Codeigniter/linux/mssql 2005-无本地字符(二进制标记),sql-server,codeigniter,activerecord,character-encoding,collation,Sql Server,Codeigniter,Activerecord,Character Encoding,Collation,在linux上设置与mssql 2005数据库的codeigniter连接时遇到问题。我设法建立了连接,但Codeigniter函数返回/解析的数据缺少所有的变音符号,如[ąężźćäß]。在firebug中,它们被矩形内的问号替换,在记事本中被黑钻石替换。例如: [2] => Array ( [id] => * [zid] => * [keyid] => AEDF

在linux上设置与mssql 2005数据库的codeigniter连接时遇到问题。我设法建立了连接,但Codeigniter函数返回/解析的数据缺少所有的变音符号,如[ąężźćäß]。在firebug中,它们被矩形内的问号替换,在记事本中被黑钻石替换。例如:

    [2] => Array
        (
            [id] => *
            [zid] => *
            [keyid] => AEDF
            [status] => A
            [txt] => 20.000, je�eli > 50 lat + 15 lat sta�u
        )
我玩了很多配置

$db['loga']['hostname'] = '10.0.0.90:4113';
$db['loga']['username'] = 'user';
$db['loga']['password'] = 'password';
$db['loga']['database'] = 'TESTDB';
$db['loga']['dbdriver'] = 'mssql';
$db['loga']['dbprefix'] = '';
$db['loga']['pconnect'] = FALSE;
$db['loga']['db_debug'] = TRUE;
$db['loga']['cache_on'] = FALSE;
$db['loga']['cachedir'] = '';
$db['loga']['char_set'] = 'utf-8';
$db['loga']['dbcollat'] = 'Polish_CI_AS';
$db['loga']['swap_pre'] = '';
$db['loga']['autoinit'] = TRUE;
$db['loga']['stricton'] = FALSE;

/* End of file database.php */
数据库排序规则设置为Polish_CI_AS-且无法更改(cp1250)。我已经对如何解释CI数据库配置文件中的所有参数感到困惑。我假设$db['loga']['dbcollat']表示数据库排序规则,其中char_set是。。。我不知道了:)

最后,我希望数据是UTF-8格式的(这样可以在浏览器中正确显示)

我还做了家庭作业,并尝试使用: @ini_集('mssql.charset','utf-8')

这对我不起作用-对结果没有明显影响。我还试图弄乱freeTDS配置文件(设置“client charset=UTF-8”)——仍然没有结果

值得一提的是,我只知道linux操作系统的基础知识,所以我可能错过了一些东西。我在php.ini文件中发现,mssql.charset param仅在使用freeTDS编译php时才能正常工作。我只能假设是这样

无论如何,在Windows服务器上运行脚本(并使用sqlsrv驱动程序)时,我对脚本没有任何问题

有什么建议可以找到解决方案吗?我不明白或不正确理解的是什么


感谢Ubuntu上的/etc/freetds/freetds.conf,我添加了这两行代码并重新加载Apache

[global]
tds version = 8.0
client charset = UTF-8
它对我有用