Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SQL Server PDO-ODBC连接UTF-8_Php_Sql Server_Utf 8_Pdo_Odbc - Fatal编程技术网

Php SQL Server PDO-ODBC连接UTF-8

Php SQL Server PDO-ODBC连接UTF-8,php,sql-server,utf-8,pdo,odbc,Php,Sql Server,Utf 8,Pdo,Odbc,我试图在Windows上通过PHP(5.5)和PDO_ODBC连接到Microsofts SQL Server(2000和2008),并将字符集设置为UTF-8,但我没有找到方法。这就是我要尝试的: $db['conn'] = new PDO( //"odbc:driver={SQL Server};". "odbc:driver={SQL Server Native Client 10.0};". //"odbc:driver={SQL Server Native C

我试图在Windows上通过PHP(5.5)和PDO_ODBC连接到Microsofts SQL Server(2000和2008),并将字符集设置为UTF-8,但我没有找到方法。这就是我要尝试的:

$db['conn'] = new PDO(

    //"odbc:driver={SQL Server};".
    "odbc:driver={SQL Server Native Client 10.0};".
    //"odbc:driver={SQL Server Native Client 11.0};".

    "server=".$db['host'].";".
    "database=".$db['bank'].";".
    "uid=".$db['user'].";".
    "pwd=".$db['pass'].";".
    "charset=UTF-8;"
);
对于PDO_SQLSRV,它默认工作。但由于PHP5.5没有官方的PDO_SQLSRV驱动程序,而且我必须连接到旧的SQLServer2000,所以我不能使用PDO_SQLSRV

当我通过PDO_ODBC连接时,有没有一个选项可以使用? 我寻找一种避免PHP utf8_encode()的方法


提前感谢:)

有PHP/5.5的非官方编译。ODBC的问题是编码不能在需要调整某些ODBC配置文件的代码中设置。(请记住,
utf8_encode()
从ISO-8859-1转换而来。)不幸的是,官方的PHP5.4和非官方的PHP5.5 pdo_sqlsrv驱动程序放弃了对SQL Server 200的支持(自去年夏天微软放弃SQL Server 200以来,这是正确的)。我可以在windows上调整ODBC配置文件吗?你是对的。。。mb_convert_encoding()从cp1252到utf8将提供更好的结果;)