导轨 - 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