34

How can I set the encoding of a file when using a File#open?

Nakilon
  • 34,866
  • 14
  • 107
  • 142
Fluffy
  • 27,504
  • 41
  • 151
  • 234

3 Answers3

56

Here's an example that outputs a file in the UTF-16LE encoding:

open("data.txt", "w:UTF-16LE")

Ruby looks at the encoding of the string you are writing, and transcodes as necessary. Here's a very detailed blog post describing mechanics with excellent examples (see the section called "The Default External and Internal Encodings").

ire_and_curses
  • 68,372
  • 23
  • 116
  • 141
5

That blog also has a bunch of great information about character encoding with Ruby, including a post about encoding with Ruby 1.8.

Ryenski
  • 9,582
  • 3
  • 43
  • 47
1

Here's the way to read pages with Japanese Shift JIS encoding:

  file = open(url, "r:Shift_JIS")
nevan king
  • 112,709
  • 45
  • 203
  • 241