AFAIK Ruby 1.8 doesn't support magic comments that specify encodings at all, 
1.9 does. Ruby 1.8 also doesn't recognize BOM.
Even version 1.9 has full encoding support, not just 2.0.

Tomas

From: ironruby-core-boun...@rubyforge.org 
[mailto:ironruby-core-boun...@rubyforge.org] On Behalf Of Shri Borde
Sent: Friday, February 13, 2009 3:01 PM
To: ironruby-core@rubyforge.org
Subject: [Ironruby-core] $KCODE and encodings

I was searching for string encoding issues in Ruby. Here is the summary of what 
I learnt, in case its useful to anyone else of if anyone has any corrections to 
this.

Ruby 1.8 support for encoding:

*         A comment like "# -*- coding: utf-8 -*-" at the start of the file is 
supposed to determine how to parse a .rb file, but I haven't really figured out 
how to make this work. Non-ansi characters cause an error while loading the 
file.

*         ruby.exe -K<kcode> sets $KCODE (which can also be set programmaticaly)

*         $KCODE affects the following:

*         Determines the encoding to use to parse .rb files. Normally, 
identifiers have to be ANSI, but the limitation is removed if $KCODE is set to 
"UTF8".

*         Affects whether inspect escapes non-ascii chars, or if it leaves them 
as is.

*         Affects how regexps without an explicit encoding interpret the input 
string.

Ruby 1.9 support for encodings:

*         Identifiers can be non-ANSI by default.

Ruby 2.0 support for encodings:

*         Each string and symbol knows its own encoding, and 
String#force_encoding can change the encoding of an existing string.

*         IO#encoding to control encoding to use for reading/writing from disk
_______________________________________________
Ironruby-core mailing list
Ironruby-core@rubyforge.org
http://rubyforge.org/mailman/listinfo/ironruby-core

Reply via email to