ウォンツテック

そでやまのーと

Nokogiriのparse時の文字コード

rubyのHTML, XMLパーサであるNokogiriでsjis等の日本語を含んだファイルをパースする時の文字コードはutf8が良さげ。
というよりsjisとかうまくparseしてくれない。
※全くparseしてくれないんじゃなくて、途中でdomの一部が欠落している場合があった

require 'rubygems'
require 'nokogiri'
require 'nkf'

read = NKF.nkf("--utf8", File.open("hoge.xml").read) #hoge.xmlはsjisで書かれていてheaderのencodingは"Shift_JIS"
doc = Nokogiri.XML(read, nil, 'utf8')