我正在使用带有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),我无法将其与任何编码相关联。任何帮助将不胜感激。
谢谢, 托拜厄斯