CMDのコードページには気をつけろ!
WindowsでWEBアプリを作っていると「縺ョ邨・ォ九※」みたいな画面表示で気が滅入ること、ありませんか?
そんなときは「chcp 65001」とやって、UTF-8 表示にするわけですが(フォントは事前に「MS ゴシック」にしておくこと)、ruby-debug を使っていてちょっとはまってしまったことがあったのでメモしておきます。
現象
CMDで「chcp 65001」にしておいて次のソースを実行します。ソースの文字コードは UTF-8でも Shift-JISでも同じです。
require 'ruby-debug' class Test def set end def get debugger set # URIの組立て end end ts = Test.new ts.get
これを実行すると次のようなエラーが出ます。
C:\Tmp> ruby test1.rb test1.rb:9 set # URIの組立て 立て て INTERNAL ERROR!!! Permission denied c:/ruby/lib/ruby/gems/1.8/gems/ruby-debug-0.10.1/cli/ruby-debug/processor.rb:106:in `write' c:/ruby/lib/ruby/gems/1.8/gems/ruby-debug-0.10.1/cli/ruby-debug/processor.rb:106:in `print' c:/ruby/lib/ruby/gems/1.8/gems/ruby-debug-0.10.1/cli/ruby-debug/processor.rb:106:in `print_location_and_text' c:/ruby/lib/ruby/gems/1.8/gems/ruby-debug-0.10.1/cli/ruby-debug/processor.rb:243:in `process_commands' c:/ruby/lib/ruby/gems/1.8/gems/ruby-debug-0.10.1/cli/ruby-debug/processor.rb:171:in `__at_line' (eval):5:in `at_line' (eval):3:in `synchronize' (eval):3:in `at_line' c:/ruby/lib/ruby/gems/1.8/gems/ruby-debug-base-0.10.1-mswin32/lib/ruby-debug-base.rb:52:in `at_line' test1.rb:9:in `get' test1.rb:14
「Permission denied」って、なに?、と小20分ほど悩みました。