1

でherokuコンソールを実行する

heroku run console

UTF-8 文字 (ドイツ語のウムラウト文字など) を返すすべてのコマンドは、次のエラーになります。

irb(main):004:0> Play.all[-2]
   Play Load (27.5ms)  SELECT "plays".* FROM "plays" ORDER BY name asc 
Encoding::UndefinedConversionError: U+00E4 from UTF-8 to US-ASCII
    from /usr/local/lib/ruby/1.9.1/irb.rb:311:in `write'
    from /usr/local/lib/ruby/1.9.1/irb.rb:311:in `printf'
    from /usr/local/lib/ruby/1.9.1/irb.rb:311:in `output_value'
    from /usr/local/lib/ruby/1.9.1/irb.rb:160:in `block (2 levels) in eval_input'
    from /usr/local/lib/ruby/1.9.1/irb.rb:273:in `signal_status'
    from /usr/local/lib/ruby/1.9.1/irb.rb:156:in `block in eval_input'
    from /usr/local/lib/ruby/1.9.1/irb/ruby-lex.rb:243:in `block (2 levels) in each_top_level_statement'
    from /usr/local/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in `loop'
    from /usr/local/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in `block in each_top_level_statement'
    from /usr/local/lib/ruby/1.9.1/irb/ruby-lex.rb:228:in `catch'
    from /usr/local/lib/ruby/1.9.1/irb/ruby-lex.rb:228:in `each_top_level_statement'
    from /usr/local/lib/ruby/1.9.1/irb.rb:155:in `eval_input'
    from /usr/local/lib/ruby/1.9.1/irb.rb:70:in `block in start'
    from /usr/local/lib/ruby/1.9.1/irb.rb:69:in `catch'
    from /usr/local/lib/ruby/1.9.1/irb.rb:69:in `start'
    from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.12/lib/rails/commands/console.rb:47:in `start'
    from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.12/lib/rails/commands/console.rb:8:in `start'
    from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.12/lib/rails/commands.rb:41:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'Maybe IRB bug!!

この原因がよくわかりません。回避策はありますか?

「UTF-8 xterm-color」の設定で iTerm を使用しています。

アップデート

このエラーは、私にはわからない理由で完全に消え、ruby 1.9.2p320 でも 1.9.3p448 でも再現できません。コンソールに「\u00E4」と入力すると、期待どおりに「ä」が返されます。

irb(main):001:0> "\u00E4"
=> "ä"
4

0 に答える 0