0

导轨 - 2.3.8

红宝石 - 1.8.7

我真的搜索了旧问题,但一无所获。

交易是:从 .csv 读取并将该信息以 UTF8 格式更新到我的表中,但是像 'á'、'è'、'û' 这样的特殊字符会更改为 '?'。

我的表支持所有这种字符。这是我尝试过的代码:

FasterCSV.open("public/files/some.csv", :encoding => "U") do |csv|
    csv.each do |line|
        Model.update_all("column1 = '#{line}'", "id= 129476")
    end 
end

所以行有这个Ácido acetilsalicílico;Ácido acetilsalicílico;Não Comercializado

在我的终端上使用调试器在更新前检查,行有这个:

�cido acetilsalic�lico;�cido acetilsalic�lico;N�o Comercializado

并且在桌子上保存的内容是:?cido acetilsalic?lico;?cido acetilsalic?lico;N?o Comercializado

我做了另一个测试,包括读取文件(逐行)并在读取的每一行写入一个新文件,在每次写入之前,我检查了终端上的行并显示�cido acetilsalic�lico;�cido acetilsalic�lico;N�o Comercializado。但是在所有文件都写完之后,当我打开那个新文件时,惊讶地发现所有的字符都很好地显示了!!

我需要帮助来理解为什么在数据库中写入的字符都是愚蠢的!!!xD

4

0 回答 0