在Ruby 1.8中将字符串简单转换为UTF-8

时间:2010-09-07 23:37:08

标签: ruby character-encoding

我知道在Ruby 1.9中你可以很容易地重新编码这样的字符串。

s = s.encode('UTF-8')

Ruby 1.8中的等价物是什么?什么需要线条它需要。

我看到的所有教程都是不必要的复杂,我不明白发生了什么。

1 个答案:

答案 0 :(得分:10)

James Edward Gray II有一个detailed collections of posts处理Ruby 1.8中的编码和字符集问题。标题为Encoding Conversion with iconv的帖子包含详细信息。

总结:iconv gem完成转换编码的所有工作。确保它已安装:

gem install iconv

现在,您需要知道您的字符串当前的编码方式,因为Ruby 1.8将字符串视为字节数组(没有内部编码)。例如,假设您的字符串位于latin1和你想把它转换成utf-8

require 'iconv'

string_in_utf8_encoding = Iconv.conv("UTF8", "LATIN1", string_in_latin1_encoding)

参数的顺序是:

  1. 目标编码
  2. 来源编码
  3. 要转换的字符串