Nokogiri の encoding をどのような文字列で指定すれば良いか?
Nokogiri で
Nokogiri::HTML.parse(open(url)[, url[, encoding]])
等と 文字コードを指定したい場合 文字列で指定するわけだが、
どのような文字列を使えば良いのか?
ソースを読むと、Nokogiri::HTML::Document.read_memory で LibXMLを
呼び出している。それ以上はソースを追いかけるより LibXML を調べた
方が良さそう。結局 LibXML の仕様によるのだろうが(たぶん 寛大に
受け付けているとは思うが)、一応 Nokogiri 的には どのような指定が
適切か調べる。
Emacs の rgrep で調べて Nokogiri::XML::SAX::Parser::ENCODINGS を発見。
$ ruby -rpp -e "require 'rubygems'; require 'nokogiri'; pp Nokogiri::XML::SAX::Parser::ENCODINGS" {"ISO-8859-5"=>14, "UCS4-3412"=>8, "UTF-8"=>1, "ISO-8859-6"=>15, "ISO-8859-7"=>16, "ISO-8859-8"=>17, "EUC-JP"=>21, "ISO-8859-9"=>18, "UCS2"=>9, "NONE"=>0, "ISO-2022-JP"=>19, "EBCDIC"=>6, "ISO-8859-1"=>10, "ASCII"=>22, "ISO-8859-2"=>11, "UTF16BE"=>3, "SHIFT-JIS"=>20, "ISO-8859-3"=>12, "UCS4BE"=>5, "UTF16LE"=>2, "ISO-8859-4"=>13, "UCS4-2143"=>7, "UCS4LE"=>4}