How can I set the encoding of a file when using a File#open
?
Asked
Active
Viewed 1.8k times
3 Answers
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
-
1It's odd that this feature is still undocumented on ruby-doc.org. – Kelvin Apr 17 '12 at 20:24
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