From: "U.Nakamura" Date: 2008-01-12T08:03:51+09:00 Subject: [ruby-dev:33054] Re: Binary String こんにちは、なかむら(う)です。 In message "[ruby-dev:33052] Re: Binary String" on Jan.12,2008 03:57:28, wrote: | > |ruby -e'print "ほげ"' の "ほげ" には Encoding.default_external を指定し | > |てよさそうな気がするのですが、副作用ってありますかね? | > | > そうですね。あまり問題は発生しないように思います。あと、引数 | > なしで標準入力からプログラムを受け付ける時も。 | | こんな感じですかね。 | この時点では default_external ではなく locale encoding でした。 -eおよび標準入力からのスクリプトがlocale encodingになるのはい いんですが、このパッチ(もう入ってますが)では、通常のスクリプ トもlocale encodingになってしまいます。 これは意図的なものでしょうか? なんとなく、ruby 1.8からの類推だと、magic commentなしのスクリ プトファイルについては、このパッチ以前と同じようにencoding指 定なしと扱うべきように思います。 Index: ruby.c =================================================================== --- ruby.c (revision 14998) +++ ruby.c (working copy) @@ -1152,7 +1152,7 @@ load_file(VALUE parser, const char *fnam require_libraries(); /* Why here? unnatural */ } if (opt->enc_index >= 0) rb_enc_associate_index(f, opt->enc_index); - else rb_enc_associate(f, rb_locale_encoding()); + else if (f == rb_stdin) rb_enc_associate(f, rb_locale_encoding()); tree = (NODE *)rb_parser_compile_file(parser, fname, f, line_start); if (script && rb_parser_end_seen_p(parser)) { rb_define_global_const("DATA", f); それでは。 -- U.Nakamura