【发布时间】:2011-06-09 12:06:54
【问题描述】:
当我从文件中读取内容时,有时会收到此错误“UTF-8 中的字节序列无效”。注意 - 只有当字符串中有一些特殊字符时才会发生这种情况。我尝试打开没有“r:UTF-8”的文件,但仍然出现同样的错误。
open(file, "r:UTF-8").each_line { |line| puts line.strip(",") } # line.strip generates the error
文件内容:
# encoding: UTF-8
290919,"SE","26","Sk‰l","",59.4500,17.9500,, # this errors out
290956,"CZ","45","HornÌ Bradlo","",49.8000,15.7500,, # this errors out
290958,"NO","02","Svaland","",58.4000,8.0500,, # this works
这是我从外部获得的 CSV 文件,我正在尝试将其导入我的数据库,它的顶部没有“# encoding: UTF-8”,但我添加了这个,因为我在某个地方读到它会解决这个问题,但它没有。 :(
环境:
- Rails v3.0.3
- ruby 1.9.2p0(2010-08-18 修订版 29036)[x86_64-darwin10.5.0]
【问题讨论】:
-
# encoding: UTF-8用于声明 ruby 源文件的编码,不会对 IO 产生影响。
标签: ruby-on-rails ruby character-encoding