Php CodeIgniter MSSQL编码问题(问号)

Php CodeIgniter MSSQL编码问题(问号),php,sql-server,codeigniter,encoding,Php,Sql Server,Codeigniter,Encoding,我将CodeIgniter与MSSQL驱动程序一起使用($db['default']['dbdriver']) 我正在连接一个远程数据库。在主机名中,我有服务器的IP。 数据库排序规则是SQL\u Latin1\u General\u CP1\u CI\u AS 问题是,当我获取数据时,希伯来语显示为问号。 我尝试了各种字符集、iconv和mb转换组合,但似乎都不起作用 我认为这是连接字符串中的某个内容,但是使用MSSQL驱动程序没有连接字符串。当我尝试使用ODBC驱动程序时,它工作正常(ODB

我将CodeIgniter与MSSQL驱动程序一起使用(
$db['default']['dbdriver']

我正在连接一个远程数据库。在主机名中,我有服务器的IP。 数据库排序规则是
SQL\u Latin1\u General\u CP1\u CI\u 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

我想这是在连接失败时发生的。有时它会正确显示(但带有问号),有时我会出现此错误。

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

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

解决方案:

这是由一位朋友解决的,它必须与服务器的配置有关:

cat /etc/freetds.conf
创建一个新实例

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

希望它能帮助任何人;)

解决方案:

这是由一位朋友解决的,它必须与服务器的配置有关:

cat /etc/freetds.conf
创建一个新实例

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

希望它能帮助任何人;)

似乎不起作用。我希望避免对数据库进行更改,但它对这种类型的现有数据也不起作用。您可以检查是否使用SSMS正常获取数据吗?可能数据最初没有正确地存储在数据库中。人们应该在数据库中使用希伯来文排序来正确存储希伯来文数据。这是一个我还没有写过的网站。我确信数据没有正确存储——它使用拉丁字符集而不是utf8或希伯来语编码。我正在重建整个站点,由于它处于活动状态,在迁移过程中,我希望使用远程连接使用原始数据库,直到它完全移动。当我从我的windows机器(使用sqlsrv)获取数据时,数据被正确解码。我在找一个变通办法,但似乎不起作用。我希望避免对数据库进行更改,但它对这种类型的现有数据也不起作用。您可以检查是否使用SSMS正常获取数据吗?可能数据最初没有正确地存储在数据库中。人们应该在数据库中使用希伯来文排序来正确存储希伯来文数据。这是一个我还没有写过的网站。我确信数据没有正确存储——它使用拉丁字符集而不是utf8或希伯来语编码。我正在重建整个站点,由于它处于活动状态,在迁移过程中,我希望使用远程连接使用原始数据库,直到它完全移动。当我从我的windows机器(使用sqlsrv)获取数据时,数据被正确解码。我在找一个解决办法