Simple Conversion Of String To UTF-8 in Ruby 1.8

2020-02-28 06:03发布

I know that in Ruby 1.9 you can easily re-encode a string like this.

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

What is the equivalent in Ruby 1.8? What require lines does it need.

All the tutorials I have seen are needlessly complicated and I don't understand what is going on.

1条回答
走好不送
2楼-- · 2020-02-28 06:44

James Edward Gray II has a detailed collections of posts dealing with encoding and character set issues in Ruby 1.8. The post entitled Encoding Conversion with iconv contains detailed information.

Summary: the iconv gem does all the work of converting encodings. Make sure it's installed with:

gem install iconv

Now, you need to know what encoding your string is currently in as Ruby 1.8 treats Strings as an array of bytes (with no intrinsic encoding.) For example, say your string was in latin1 and you wanted to convert it to utf-8

require 'iconv'

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

The order of arguments is:

  1. Target encoding
  2. Source encoding
  3. String to convert
查看更多
登录 后发表回答