2011-04-11 79 views
0

在与DB的交谈时再次出现字符集问题:)SQL Server 2000字符集问题

我有两个运行Zend Server的环境。这些Bot使用mssql扩展与SQL Server 2000通信。在扩展设置中,它们都没有给予字符集任何价值。对于其中的一个而言,对于另一个则以错误的编码返回数据。

当这个数据被插入到MySQL数据库中并且它与SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xF6m' for column 'cust_lastname' at row 1一起尖叫时,问题就会被注意到。

我试图使用SET NAMES utf8来获得SQL Server连接来返回正确的数据,但它抱怨并说NAMES is not a recognized SET statement。环顾大多数人甚至建议使用这个,但它似乎不是SQL Server 2000的一部分:)

那么,我该怎么办?我如何在不摆弄SQL Server数据库/表格的情况下,告诉它以UTF-8编码格式向我发送数据?

编辑:

一些详细信息...

  • SQL Server使用Finnish_Swedish_CI_AS整理
  • MySQL有在UTF-8格式的每个表和使用utf8_unicode_ci

回答

0

我没有找到一个好的解决方案,最终在我的应用程序中转换为utf8并从中转换。如果这封装在一个类中,它不会谜码。但是,一种真正告诉SQL服务器在通信过程中使用哪种编码的方法会更好。