このページに関してのお問い合わせはこちら
Rubyについて Part 36
ツイート
641
:
デフォルトの名無しさん
:
2009/08/02(日) 18:30:01
>>262-263
あたりのnokogiriの話。
どうもnokogiriのWindows版gemに同梱されてるDLLは
libXML2の公式サイトからリンクされてる
ttp://www.zlatkovic.com/libxml.en.html
のもののようなので、
ttp://www.zlatkovic.com/pub/libxml/iconv-1.9.2.win32.zip
のDLLの情報等を参考にしつつ、libiconvの1.13に
森山さんのところのパッチ
ttp://www2d.biglobe.ne.jp/~msyk/software/libiconv-1.13-ja-patch.html
をあてたものを
MinGW/MSYSでビルドして、MSYS環境でそのままビルドすると
libiconv-2.dllとかしか出来ないので、ビルド時に生成された*.oに
libiconv-2.dllから抜き出したdefファイルを加えて
dllwrapでiconv.dllを生成……
ということで結果としてlibiconv-1.13-ja-1相当のiconv.dllを
作成してdllの検索パス(nokogiriの元の構成通りだとbin直下)に
配置したところ、
>>262
の
>#Shift_JISの範囲外の文字を含んだWindows-31J(=CP932)エンコーディングの文字列
>irb(main):001:0> s="<html><HEAD><TITLE>11@11@</TITLE></HEAD><body></body></html>"
>=> "<html><HEAD><TITLE>11@11@</TITLE></HEAD><body></body></html>"
>#Windows-31JエンコーディングでHTMLパース。失敗。
>irb(main):003:0> Nokogiri::HTML.parse(s,nil,'Windows-31J')
が通るように。
とりあえず今回生成したiconv.dllは
需要があるかどうか何とも言えないけどうpっておきます。
ttp://www1.axfc.net/uploader/Sc/so/23793.zip