No タイトル ステータス 重要度 担当 完了予定日 更新日時 記事数
7 xml-http-request: UTF8 以外では文字化けする問題の修正 未着手 miyamuko 2008-12-25 23:30 2007-12-27 05:09 6
xml-http-request で文字化けする問題を直す。

See http://d.hatena.ne.jp/miyamuko/20060619/p1
responseBody が取れないのは xyzzy 自体のバグ。

Msxml2.XMLHTTP を使う処理を C++ で書いて dll にして
define-dll-entry 使って呼べば文字化けせずに取得できるはず。
> responseBody が取れないのは xyzzy 自体のバグ。
xyzzy自体をどう直せばいいかってところに興味があるのですが。

デバッガで追いかけてみて、結果自体はちゃんと取得できているけれどOLEデータをlispオブジェクトに変換する部分でこけているっぽいなぁっていうところまでは分かったんですけど。
> > responseBody が取れないのは xyzzy 自体のバグ。
> xyzzy自体をどう直せばいいかってところに興味があるのですが。

パッチを添付しときました。
ruby-base.diff は ruby のソースを参考に修正したものです。
perl-base.diff は perl の OLE.xs (libwin32-0.26) を参考に修正したもの。

どちらの修正がいいのか・この修正内容で正しいのかはよく分かってないのですが、
とりあえず結果を simple-vector で取得できると思います。
添付ファイル:
ruby-base.diff
perl-base.diff
ついでにテストコードも。

(setf xml (ole-create-object "Msxml2.XMLHTTP"))
(ole-method xml 'Open "get" "http://www.google.co.jp" nil)
(ole-method xml 'Send nil)
(ole-getprop xml 'responseBody)
どーもです。
COMとかは正直手に余るんですが、勉強してみます。