使用特殊字符时MySQL更新错误

时间:2008-10-24 11:31:16

标签: mysql asp-classic special-characters

我想知道是否有人之前遇到过这个。我的客户在其产品说明字段中使用了特殊字符。如果我们使用它们的HTML等价物,那么更新到MySQL数据库工作正常但如果使用了字符本身则会失败(从字符映射或我假设的Word复制)。

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

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

2 个答案:

答案 0 :(得分: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:排序规则仅指示排序顺序。虽然这当然应该与您的字符集匹配,但它不会影响可以存储在字段中的字符范围。

答案 1 :(得分:0)

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