- Encoding::CompatibilityError: incompatible character encodings: ASCII-8BIT and US-ASCII
- Encoding::InvalidByteSequenceError: "\xE5" on US-ASCII
該当箇所で
STDERR.puts Encoding.default_external
すると US-ASCII になっていて、外部エンコーディングが不適切なのが原因と分かった。
今書いてるものは外部エンコーディングは全体的に UTF-8 固定で構わないので、CGI実行に使う ruby のコマンドライン引数で指定してみた。
server = WEBrick::HTTPServer.new( :DocumentRoot => "path/to/document_root", :BindAddress => "127.0.0.1", :CGIInterpreter => "/usr/bin/ruby -Eutf-8:utf-8", # <= これ :Port => 8000 )
Ruby のバージョン: 1.9.3p194