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

Ale*_*lex 9 ruby character-encoding

我知道在Ruby 1.9中你可以轻松地重新编码这样的字符串.

s = s.encode('UTF-8')
Run Code Online (Sandbox Code Playgroud)

Ruby 1.8中的等价物是什么?什么需要线路它需要.

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

rjk*_*rjk 10

James Edward Gray II 详细介绍了Ruby 1.8中编码和字符集问题的帖子.标题为带有iconv的编码转换的帖子包含详细信息.

总结:iconvgem完成了转换编码的所有工作.确保它已安装:

gem install iconv
Run Code Online (Sandbox Code Playgroud)

现在,你需要知道你的字符串当前是什么编码,因为Ruby 1.8将字符串视为一个字节数组(没有内部编码.)例如,假设你的字符串在latin1中,你想将它转换为utf-8

require 'iconv'

string_in_utf8_encoding = Iconv.conv("UTF8", "LATIN1", string_in_latin1_encoding)
Run Code Online (Sandbox Code Playgroud)

参数的顺序是:

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