当我在RubyonRails应用程序中转储MySQL表中的数据时,为什么会显示特殊字符?

当我在RubyonRails应用程序中转储MySQL表中的数据时,为什么会显示特殊字符?,mysql,ruby-on-rails,ruby,ruby-on-rails-3,special-characters,Mysql,Ruby On Rails,Ruby,Ruby On Rails 3,Special Characters,在我的ruby on rails应用程序中 当我将数据从(CSV,txt,XLS)等文件转储到数据库时,它会显示特殊字符,如D�E�M�o我的生产数据库中的。但在我的文件中,数据是“Demo”。那为什么会发生呢。我的实时数据似乎已损坏 我在用 Ruby 1.9.2p180 Rails 3.0.5 Phusion Passenger version 3.0.13 Mysql 它仍然显示在我的浏览器中: 为什么会这样 请帮忙 提前感谢您可能对表(请参阅)、连接(请参阅)使用了不正确的字符集,

在我的ruby on rails应用程序中

当我将数据从
(CSV,txt,XLS)
等文件转储到数据库时,它会显示特殊字符,如
D�E�M�o我的生产数据库中的
。但在我的文件中,数据是“Demo”。那为什么会发生呢。我的实时数据似乎已损坏

我在用

Ruby 1.9.2p180 
Rails 3.0.5 
Phusion Passenger version 3.0.13
Mysql
它仍然显示在我的浏览器中:

为什么会这样

请帮忙


提前感谢

您可能对表(请参阅)、连接(请参阅)使用了不正确的字符集,或者根本没有指定字符集。此外,文件(例如CSV、TXT或XLS)可能采用特定编码,并可使用另一种(不正确)编码进行读取(例如“解释”)


在您开始更改内容、猜测要使用的正确字符集之前,您应该阅读以下内容,以避免很多麻烦和挫折。

谢谢,我在应用程序中使用UTF-8编码,同时将数据转储到数据库中。我在谷歌上搜索发现这是由于UTF-16编码。但这对我不起作用,我仍然有同样的问题。你读过我链接的文章吗?您的意思是在应用程序中使用UTF-8。那么数据库呢?它也是UTF-8吗?那实际的桌子呢?您的连接设置了正确的字符集吗?那档案呢?它们也都是UTF-8吗?我在回答中提供了很多链接,其中最长的标题以“无借口”结尾的链接有一个原因(以及标题中的“无借口!”部分)。另外,当你说“但它对我不起作用”时,你至少应该说明你改变了什么。是的,我检查了链接,它很好地解释了+1对于你的努力。但在我的应用程序中,我也在数据库中使用相同的编码。我的文件也在UTF-8字符集中。所以你的文件在UTF-8中,你的数据库(和表!)在UTF-8中,你的连接设置为UTF-8,Ruby默认使用UTF-16(我从你的评论中假设这一点,我不熟悉Ruby,只是偶尔阅读一些关于它的博客文章)。看到我在哪里了吗?无论哪种方式,链中的某个地方都有不同的编码,因此您需要开始一步一步地检查整个链。你肯定会发现你的问题。而且,老实说,我认为你“读”那篇文章相当快;-)你确定你明白了吗?这些照片只显示了问题;我们需要的是相关代码/设置。这包括HTML输出中使用的字符集(例如
),设置连接字符集的代码(例如
db.options(Mysql::set\u charset\u NAME,'utf8')
),定义db/table字符集的alter/create表脚本,前面提到的
database.yml
等等,正如我现在已经重复了大约15次的:任何一个(以及更多)可能是你问题的根源。即使没有截图,你的问题也非常清楚。