2008-10-24 73 views
1

我想知道是否有人曾经遇到过这个。我有一位在其产品描述字段中使用特殊字符的客户。如果我们使用它们的HTML等价物,更新到MySQL数据库可以正常工作,但如果使用了字符本身(从字符映射或Word中假设的复制),它将失败。当使用特殊字符时MySQL更新错误

有没有人见过这种行为?这种情况下的字符是ø - 并且我们似乎无法对其进行替换(至少在ASP中),因为字符作为“?”出现在SQL字符串中。

任何建议非常感谢 - 谢谢!

回答

0

您是否尝试过将表的排序规则设置为utf-8或其他非latin1/ascii。

2

这表明数据库(连接)和实际数据之间的字符集不匹配。

很可能,您在您的网站上使用ISO-8859-1,但MySQL认为它应该获得UTF-8。

http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html描述要检查的内容以及如何更改它。最简单的方法可能是在连接到数据库时运行查询“SET NAMES latin1”(假设这是您需要的字符集)。作为Unicode的忠实粉丝,我建议完全切换到UTF-8,但我意识到这并不总是一个可行的选择。

编辑:@markokocic:整理仅指示排序顺序。虽然这当然应该与您的字符集匹配,但它不会影响可以存储在字段中的字符范围。

+0

感谢您的指点。客户端,连接和结果设置为UTF-8,数据库和服务器设置为latin1。我是否正确地假设数据库和服务器需要UTF-8? – Katy 2008-11-06 17:29:54