Yahoo!オークションといえば、日本最大のオークションサイトとして有名ですが、このHTMLが意外とひどかったのでエントリを書いてみます。
きっかけは、今とある仕事でHTMLの取得およびパースを行うプログラムを書いているのですが、試しにYahoo!のページでやってみるかと思って上記のサイトのHTMLをプログラムに入力してみたところ・・・文字化けまくり。。
charset指定がない
プログラム側の文字コード変換にはJISAutoDetectとcharset指定読み込みによる変換を行っているのですが、変換ロジックがおかしいのかとかなり焦りました...。
ここでヤフオクのhead内を見てみると、
<head> <!--・--> <title>Yahoo!オークション</title> <!-- META_TAG --> <META name="description" content="Yahoo!オークションは、誰でも簡単に売り買いが楽しめる、日本最大のネットオークションサイトです。圧倒的な商品数を誇るヤフオクで、落札・出品してみませんか?補償制度もあります。"> <!-- /META_TAG --> <LINK HREF="/jp/css/yauc_global.css" REL="stylesheet" TYPE="text/css"> </head>
こんな感じで、えらくシンプルです。見て分かるようにcharset指定がありません。何か意図があるのでしょうか・・?
HTML-lint に通してみた
ついカッとなってHTML-lintに通してみました。
-121点って・・・。
はじめまして。
JISAutoDetectだとUTF-8などうまくいかないことが多く、charsetも適当なページが多いので、自動判別にjchardetなどを使うことをお勧めします。
http://www.i18nfaq.com/chardet.html
はじめまして、コメントありがとうございます。
このライブラリは初めて知りました。
試しに組み込んでみます。
ありがとうございます!(^^)