CodeIgniter MSSQL编码问题(问号)

时间:2012-12-29 12:21:15

标签: php sql-server codeigniter encoding

我正在使用CodeIgniter和MSSQL驱动程序($db['default']['dbdriver'])。

我正在连接到远程数据库。在主机名中,我有服务器的IP。 数据库排序规则为SQL_Latin1_General_CP1_CI_AS

问题在于,当我获取数据时,希伯来语显示为问号。 我尝试了charsets,iconv和mb转换的各种组合,但似乎都没有。

我认为它是连接字符串中的东西,但是使用MSSQL驱动程序时没有连接字符串。当我使用ODBC驱动程序尝试它时,它工作正常(ODBC的设置从我的本地计算机工作,但不是从安装了MSSQL扩展的服务器,因此我使用的是MSSQL驱动程序。)

任何帮助将不胜感激。

我已切换到PDO,现在有时我会:

Fatal error: Cannot access property started with '\0' in /var/www/clients/client1/web2/web/cliqa/ci/system/database/drivers/pdo/pdo_result.php on line 176

我认为当连接失败时会发生这种情况。有时它显示正确(但带有问号),有时我会收到此错误。

2 个答案:

答案 0 :(得分:1)

<强> SOLUTION:

它是由朋友解决的,它必须对服务器的配置做一些事情:

cat /etc/freetds.conf

创建一个新实例

[annoyingRemoteHostSrv]
    host = IP_ADDRESS
    port = 1433 
    tds version = 8.0
    client charset = UTF-8

希望它可以帮助任何人;)

答案 1 :(得分:0)

尽可能使用Unicode数据类型 - nvarchar。因此,无论源代码页如何,服务器排序规则都不会影响您的数据。