我想知道是否有人以前遇到过这个。我有一个客户在他们的产品描述字段中使用了特殊字符。如果我们使用它们的 HTML 等价物,更新到 MySQL 数据库可以正常工作,但如果使用字符本身(我假设从字符映射或 Word 复制)则失败。
有没有人见过这种行为?在这种情况下,有问题的字符是 ø - 我们似乎无法对其进行替换(至少在 ASP 中),因为该字符以“?”的形式出现在 SQL 字符串中。
任何建议都非常感谢 - 谢谢!
我想知道是否有人以前遇到过这个。我有一个客户在他们的产品描述字段中使用了特殊字符。如果我们使用它们的 HTML 等价物,更新到 MySQL 数据库可以正常工作,但如果使用字符本身(我假设从字符映射或 Word 复制)则失败。
有没有人见过这种行为?在这种情况下,有问题的字符是 ø - 我们似乎无法对其进行替换(至少在 ASP 中),因为该字符以“?”的形式出现在 SQL 字符串中。
任何建议都非常感谢 - 谢谢!
这表明您的数据库(连接)和实际数据之间的字符集不匹配。
最有可能的是,您在您的站点上使用 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:排序规则仅规定排序顺序。尽管这当然应该与您的字符集匹配,但它不会影响可以存储在字段中的字符范围。
您是否尝试将表的排序规则设置为 utf-8 或非 latin1/ascii。