Ruby on rails - 从 SQLite 切换到 MySQL 后,我该怎么做才能解决编码问题



我最近部署了我的应用程序。对于开发,我使用了SQLite,到目前为止一切都很好。我有一个控制器,它使用 Nokogiri 将数据填充到我的数据库中。

问题出在生产上,我使用的是 MySQL 而不是 SQLite,现在我的脚本使用错误的编码填充数据。

例如,它写入"Aragón"而不是"Aragón"。MySQL对数据库和每个表都使用utf8。

> Nokogiri 可能正在正确返回内容。我怀疑您正在使用Nokogiri解析的内容的字符集和数据库不匹配。

您正在解析的数据可能是 ISO-8859-1 或 WIN-1252,它们是互联网上最常见的。您需要查看数据以查看其声明的内容。还要查看单词 "Aragón" 的源,并查看它是否嵌入了高位字符或实体编码字符。通过查看重音字符的值,您还可以了解字符的编码时间。

很有可能它们不是UTF8,所以当Nokogiri将它们传递给写入数据库的代码时,它们将是错误的。

要解决此问题,您需要告诉Nokogiri编码是什么,或者在存储之前将文本转换为UTF-8。

您的堆栈中的某个地方编码错误。我敢打赌它在MySQL中设置错误。

看看这个: 我需要帮助修复损坏的 UTF8 编码

相关内容

  • 没有找到相关文章

最新更新