HTML エスケープ文字
Movable Type で、カテゴリセットにて、< という文字の入ったカテゴリ名を設定しようとした際に、期待した動作にならなかったので、その解決策をメモ代わりに記載します。
たとえばカテゴリ名を a<b という文字列にしたい場合、このままだと、カテゴリセットで a<b のカテゴリのコンテンツを抽出したい、といった際にエラー(というか該当するデータがないという事になり出力されない)になります。
/*** カテゴリアーカイブなどで、ArchiveTitle に a<b という値が入るような場合 ***/
<mt:setvarblock name="searchcategoryname"><$mt:ArchiveTitle$></mt:setvarblock>
<mt:contents content_type="コンテンツデータ" field:xxxxxx="$searchcategoryname">
****
</mt:contents>
/*** ↑ MT 内部的には a<b と扱われるため該当データが無い状態になる ***/
この場合どうすれば良いかというと、カテゴリセットで名前を設定する際に、[ a<b ] という文字列ではなく、HTML エスケースした状態の [a<b] という文字列を設定することで、解決することができます。
この < は一例であり、カテゴリセットなどで以下の文字を利用したい場合は、エスケープしてあげたほうが良いでしょう。
| 利用したい文字 | HTML エスケープ |
|---|---|
| < | < |
| > | > |
| ‘ | ' |
| “ | " |
| & | & |
| (半角スペース) | |
| © | © |
| ® | ® |
| « | « |
| » | » |
HTML エスケープツール
上記のルールで文字列のエスケープ処理を行うスクリプトを用意しました。
以下のテキストボックスにエスケープ処理をしたい HTML 文字列をペーストし、「エスケープ処理」ボタンを押すと、テキストボックスにエスケープ処理した文字列を返します。
是非ご利用下さい。











