Ruby 1.9 - US-ASCII vs UTF-8

So I have source files that contain unicode chars. Do I really have to
put “# encoding: utf-8” at the beginning of every one of these files, or
can I somehow make ruby treat all files by default as utf-8? If I can,
does the change of default encoding from US-ASCII to UTF-8 make my
programs much slower?

On Sat, Dec 19, 2009 at 6:39 AM, Petri K. [email protected]
wrote:

So I have source files that contain unicode chars. Do I really have to
put “# encoding: utf-8” at the beginning of every one of these files, or
can I somehow make ruby treat all files by default as utf-8? If I can,
does the change of default encoding from US-ASCII to UTF-8 make my
programs much slower?

No, you can’t override the source encoding. You can use flags to set
the default internal / external encodings via locale (or flag), and
ruby -e will use your locale as the source encoding, but last I
checked, you need the magic comments to determine source encoding.

The main reason here is for portability. Otherwise, you could easily
(by accident) write Ruby programs that only run in your environment.

-greg

On Sat, Dec 19, 2009 at 10:38 AM, Gregory B.
[email protected] wrote:

checked, you need the magic comments to determine source encoding.
Sorry, while the above statement is generally true, I forgot about the
special case for UTF-8. To preserve backwards compatibility:

sandal:~ $ cat x.rb
p ENCODING
sandal:~ $ ruby19 -Ku x.rb
#Encoding:UTF-8

But I imagine this isn’t the recommended approach :slight_smile: