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?

···

--
Posted via http://www.ruby-forum.com/.

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 6:39 AM, Petri Kivikangas <wallu667@gmail.com> 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?

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:

···

On Sat, Dec 19, 2009 at 10:38 AM, Gregory Brown <gregory.t.brown@gmail.com> wrote:

On Sat, Dec 19, 2009 at 6:39 AM, Petri Kivikangas <wallu667@gmail.com> 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.