2009年10月20日火曜日

HTMLエンティティ

Amazon.co.jpのトップページのHTMLソースを見ていたところ、titleタグの表示がおかしいことに気がつきました。
こんな風になってます。
<title>Amazon.co.jp&#xFF1A; &#x901A;&#x8CA9; - &#x30D5;&#x30A1;&#x30C3;&#x30B7;&#x30E7;&#x30F3;&#x3001;&#x5BB6;&#x96FB;&#x304B;&#x3089;&#x98DF;&#x54C1;&#x307E;&#x3067;</title>
実際にブラウザで見ると普通の文字列です。
Amazon.co.jp: 通販 - ファッション、家電から食品まで
なにかエスケープをしているようですが、初めて見る形式です。
気になって少し調べてみたところ、HTMLエンティティというものだということがわかりました。
&gt;とか&lt;などHTML特殊文字と同じ形式なので、それの拡張版みたいなものなのでしょうか?
とりあえずphpでは、htmlentities関数で変換。html_entity_decode関数で元に戻すことができることがわかりました。
一般的には、メールアドレス収集のボット対策などに文字列のHTMLエンティティ化が使われているそうですが、amazonがtitleタグをHTMLエンティティ化している理由がわかりません。ボット対策ってわけでもないでしょうし。。
文字化け対策にもなったりするんでしょうか?

0 件のコメント:

コメントを投稿