Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.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
Sqlsrv PHP驱动程序和UTF-8编码问题以及错误消息_Php_Sql Server_Utf 8 - Fatal编程技术网

Sqlsrv PHP驱动程序和UTF-8编码问题以及错误消息

Sqlsrv PHP驱动程序和UTF-8编码问题以及错误消息,php,sql-server,utf-8,Php,Sql Server,Utf 8,我正在使用带有UTF-8编码的Microsoft sqlsrv驱动程序(通过将字符集“UTF-8”传递给sqlsrv_connect)。这对于存储在数据库中的实际数据来说效果很好,但是我发现sqlsrv_错误返回的非英语文本有问题。当为SQL Server使用不同的语言时(例如,设置语言德语),我发现返回的错误消息不是UTF-8编码的。这是sqlsrv_errors()为8152错误返回的结果: [Microsoft][SQL Server Native Client 10.0][SQL Ser

我正在使用带有UTF-8编码的Microsoft sqlsrv驱动程序(通过将字符集“UTF-8”传递给sqlsrv_connect)。这对于存储在数据库中的实际数据来说效果很好,但是我发现sqlsrv_错误返回的非英语文本有问题。当为SQL Server使用不同的语言时(例如,
设置语言德语
),我发现返回的错误消息不是UTF-8编码的。这是sqlsrv_errors()为8152错误返回的结果:

[Microsoft][SQL Server Native Client 10.0][SQL Server]Zeichenfolgen- oder Bin?rdaten w?rden abgeschnitten.
和十六进制(只有两个无效字):

所以,有问题的字符被编码为84(实际上是U+00E4)和81(实际上是U+00FC),我无法将其与任何编码联系起来。任何帮助都将不胜感激

谢谢,
Tobias

我不太了解sqlsrv,但您可能需要配置服务器,并告知德语是哪种编码。服务器似乎在将德语字符串重新编码到您请求的UTF-8客户端字符集时遇到问题。我们也有同样的问题,但我们没有得到
sqlsrv_错误()
我们调用
sqlsrv_配置('warningreturnaserrors',0)之前。之后,我们在同一语句中执行
备份
,然后执行SELECT。BACKUP命令实际上发送警告(它在SSMS的控制台中输出消息)。我们不希望这些警告被视为错误,但其副作用是,如果我们在调用
sqlsrv\u next\u result
时使用字符集UTF-8连接并崩溃PHP,这些消息将被忽略,这也是badHi@MaxiWheat,这是一个旧线程,但我现在也有同样的问题。我已经搜索这个问题5天了:你能告诉我你是如何解决这个问题的吗??这将是非常有益的。谢谢
B i n ? r d a t e n  w ? r d e n
42696e8472646174656e 77817264656e