[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

Why `w3m-check-refresh-attribute' decodes entities in url?



`w3m-check-refresh-attribute' は meta タグで refresh を指定され
たときに飛び先の url を抽出するための関数です。

ニューヨークタイムズは記事を無料で公開する代わりに広告でかせぐこ
とにしたようで、記事の url を開くとまず全面広告が現れて、10秒後
に本来の記事に refresh されるようになっている[1] のですが、飛び
先の url に以下のような entity まがいの文字列が含まれています[2]。

<meta http-equiv=refresh content="8;url=/2007/09/20/science/20foss\
il.html?ei=5088&en=5571610a49ff5906&ex=1347940800&adxnnl=1&partner\
=rssnyt&emc=rss&adxnnlx=1190281743-dIyIGglNew7j8w0caVNw7g">

`w3m-check-refresh-attribute' は `w3m-decode-entities-string' で
これをデコードするので、"&part" の部分が "∂" のような文字に変換
されてしまいます。それを含む url にアクアセスする際にエンコード
されますが、元の url と同じにはなりません[3]。

Meta タグが指定するリダイレクト先の url 文字列は、そのまま使えば
良いと思うのですが、いかがなものでしょう?  実際 sb-nytimes.el で
はきたない手を使ってそうしています。

[1] Shimbun は refresh の時間を無視しています。
[2] そもそも NYTimes が悪い?
[3] それでもアクセスできる場合もあるのが不可解。
-- 
山岡