Skip to content

Instantly share code, notes, and snippets.

@tmtm
Created August 11, 2012 14:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tmtm/3324735 to your computer and use it in GitHub Desktop.
Save tmtm/3324735 to your computer and use it in GitHub Desktop.
% ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [i686-linux]

次のスクリプトを実行すると

# coding: utf-8
Encoding.default_external = 'cp932'
Encoding.default_internal = 'utf-8'
File.open('cp932.txt', 'r').read

こんなエラーになる

% ruby /tmp/a.rb
/tmp/a.rb:4:in `read': code converter not found (Windows-31J to UTF-8) (Encoding::ConverterNotFoundError)
        from /tmp/a.rb:4:in `<main>'

-E オプションを指定すればエラーにならない

% ruby -Ecp932:utf-8 /tmp/a.rb

外部エンコーディング、内部エンコーディング指定してもエラーになる

# coding: utf-8
Encoding.default_external = 'cp932'
Encoding.default_internal = 'utf-8'
File.open('cp932.txt', 'r:cp932:utf-8').read

でも default_external か default_internal のどちらかを消せばエラーにならない

# coding: utf-8
Encoding.default_external = 'cp932'
#Encoding.default_internal = 'utf-8'
File.open('cp932.txt', 'r:cp932:utf-8').read
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment