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

时间:2012-03-08 17:14:26

标签: php sql-server utf-8

我正在使用带有UTF-8编码的Microsoft sqlsrv驱动程序(通过将CharacterSet'UTF-8'传递给sqlsrv_connect)。这适用于存储在数据库中的实际数据,但我发现sqlsrv_errors返回的非英文文本存在问题。当为SQL Server使用不同的语言(例如,SET LANGUAGE German)时,我发现返回的错误消息不是UTF-8编码的。这就是sqlsrv_errors()为8152错误返回的内容:

[Microsoft][SQL Server Native Client 10.0][SQL Server]Zeichenfolgen- oder Bin?rdaten w?rden abgeschnitten.

作为十六进制(只有两个无效的单词):

B i n ? r d a t e n  w ? r d e n
42696e8472646174656e 77817264656e

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

谢谢, 托拜厄斯

0 个答案:

没有答案