Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Simple Conversion Of String To UTF-8 in Ruby 1.8

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.

like image 452
Alex Avatar asked Sep 07 '10 23:09

Alex


1 Answers

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
like image 148
rjk Avatar answered Nov 15 '22 10:11

rjk