CodeIgniter MSSQL编码问题(问号)


CodeIgniter MSSQL encoding issue (question marks)

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

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

问题是,当我获取数据时,希伯来语显示为问号。我尝试了各种字符集,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

我认为它发生在连接失败时。有时它显示正确(但带有问号),有时我得到这个错误。

解决方案:

这个问题是由一个朋友解决的,它与服务器的配置有关:

cat /etc/freetds.conf

创建一个新实例

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

希望对大家有所帮助;)

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