Twitterのエスケープ処理について。

入力

<"&hearts;&&hearts;">

表示

<"♥&♥">

HTML

&lt;"&hearts;&&hearts;"&gt;

&"はエスケープされない!APIが返すテキストも同様。<>だけエスケープされる。

Twitterを信じて、与えられたテキストをそのままHTMLで出力していいものか。

一方、URLとか@、#なんかをリンクにする処理はAPIユーザが自前でやらなければならない。不安。


HTMLが壊れる例

上と別の話。以下の入力は、

http://www.example.com/(@koseki)

以下のように表示される。

koseki)" class="tweet-url web" rel="nofollow" target="_blank">http://www.example.com/(@koseki)

先頭のkosekiは

http://www.example.com/(@%3Ca%20class=

にリンクしている。