如何在Ruby中使用encode utf-8?

时间:2014-02-15 20:19:27

标签: ruby utf-8 character-encoding

我想从第一行文件中提取一个单词:

LOCATION,Feij�,AC,a,b,c

这样:

2.0.0-p247 :005 > File.foreach(file).first

  

=> “LOCATION,Feij \ XF3,AC,A,B,C \ r \ n” 个`

但是当我尝试使用split时:

2.0.0-p247 :008 > File.foreach(file).first.split(",")

  

ArgumentError:来自(irb)的UTF-8中的无效字节序列:8:split' from (irb):8 from /home/bleh/.rvm/rubies/ruby-2.0.0-p247/bin/irb:13:in'

我的期望是:Feijó

我已经尝试了很多组合,例如.encode和.force_encoding。

一些想法?

1 个答案:

答案 0 :(得分:3)

ó中的字符\xF3File.foreach(file, :encoding => 'iso-8859-1:utf-8').first.split(",") ,因此这可能是文件的编码(也可能是ISO-8859-1 encoding

您可以将编码指定为CP-1252的arg,也可以让Ruby为您重新编码为UTF-8:

{{1}}