ScriptEncodingJa » History » Version 8
Version 7 (smith rogard, 07/14/2011 02:31 AM) → Version 8/18 (Yui NARUSE, 07/14/2011 07:53 AM)
=begin
= Script Encoding Summary
[[ruby-dev:33389]]より転載。
通常のスクリプトの場合 | script encoding | default external |
------------------------------+-----------------+------------------+
-K・-Eなし、magic commentなし | US-ASCII | locale |
-K・-Eなし、magic commentあり | magic comment | locale |
-Eあり、magic commentなし | US-ASCII | -E |
-Eあり、magic commentあり | magic comment | -E |
-Kあり、magic commentなし | -K | -K |
-Kあり、magic commentあり | magic comment | -K |
-eおよびstdinの場合 | script encoding | default external |
------------------------------+-----------------+------------------+
-K・-Eなし、magic commentなし | locale | locale |
-K・-Eなし、magic commentあり | magic comment | locale |
-Eあり、magic commentなし | locale | -E |
-Eあり、magic commentあり | magic comment | -E |
-Kあり、magic commentなし | -K | -K |
-Kあり、magic commentあり | magic comment | -K |
== 1.8からのscript encodingに関する非互換まとめ
* -Kがない場合、1.8では1.9のASCII-8BIT相当の挙動だったが、1.9
ではUS-ASCIIとして扱われる。
よって、-Kなしでリテラル中に他バイト文字が含まれている場合、
1.8ではencodingと運によっては大丈夫だったものが、1.9では必
ずパース時にエラーが発生するようになる。
* magic commentがあった場合、1.8では無視されるが、1.9ではそれ
がscript encodingに反映される。-Kよりも優先。
* ((<Buy Assignment|URL:http://www.assignmentmojo.co.uk/buy-assignments-online/>))
* 上記の表にはないが、コマンドラインオプション・RUBYOPT・shebang
の間の優先順位が1.9では変更されている。
よって、それぞれに矛盾する-K指定が存在した場合、1.8とは異な
る優先順位でscript encodingが決定される。
具体的には以下の通り(左が優先)
: 1.8
shebang > RUBYOPT > コマンドライン
: 1.9
コマンドライン > RUBYOPT > shebang
* ((<essay writing|URL:http://www.essaymojo.co.uk/essay-service.php/>)) ((<Essay Writing|URL:http://www.allwritingsource.co.uk/essay-writing-service.php>)) ((<Logo Design Competition|URL:http://www.mightydesigners.com>))||((<Essay Writing|URL:http://www.essayinn.co.uk/>))
=end
= Script Encoding Summary
[[ruby-dev:33389]]より転載。
通常のスクリプトの場合 | script encoding | default external |
------------------------------+-----------------+------------------+
-K・-Eなし、magic commentなし | US-ASCII | locale |
-K・-Eなし、magic commentあり | magic comment | locale |
-Eあり、magic commentなし | US-ASCII | -E |
-Eあり、magic commentあり | magic comment | -E |
-Kあり、magic commentなし | -K | -K |
-Kあり、magic commentあり | magic comment | -K |
-eおよびstdinの場合 | script encoding | default external |
------------------------------+-----------------+------------------+
-K・-Eなし、magic commentなし | locale | locale |
-K・-Eなし、magic commentあり | magic comment | locale |
-Eあり、magic commentなし | locale | -E |
-Eあり、magic commentあり | magic comment | -E |
-Kあり、magic commentなし | -K | -K |
-Kあり、magic commentあり | magic comment | -K |
== 1.8からのscript encodingに関する非互換まとめ
* -Kがない場合、1.8では1.9のASCII-8BIT相当の挙動だったが、1.9
ではUS-ASCIIとして扱われる。
よって、-Kなしでリテラル中に他バイト文字が含まれている場合、
1.8ではencodingと運によっては大丈夫だったものが、1.9では必
ずパース時にエラーが発生するようになる。
* magic commentがあった場合、1.8では無視されるが、1.9ではそれ
がscript encodingに反映される。-Kよりも優先。
* ((<Buy Assignment|URL:http://www.assignmentmojo.co.uk/buy-assignments-online/>))
* 上記の表にはないが、コマンドラインオプション・RUBYOPT・shebang
の間の優先順位が1.9では変更されている。
よって、それぞれに矛盾する-K指定が存在した場合、1.8とは異な
る優先順位でscript encodingが決定される。
具体的には以下の通り(左が優先)
: 1.8
shebang > RUBYOPT > コマンドライン
: 1.9
コマンドライン > RUBYOPT > shebang
* ((<essay writing|URL:http://www.essaymojo.co.uk/essay-service.php/>)) ((<Essay Writing|URL:http://www.allwritingsource.co.uk/essay-writing-service.php>)) ((<Logo Design Competition|URL:http://www.mightydesigners.com>))||((<Essay Writing|URL:http://www.essayinn.co.uk/>))
=end