はてな記法におけるエスケープシーケンスの利用

ネタが無いので小ネタです。


儂はBlogにおいてシステム的な内容を記述する時に以下の様な表記をしています。

(07.01.30の記事「[ウェブ]はてな記法におけるエスケープシーケンスの利用」を追記しました。)

ソースは以下の通り、

<span style="font-size:xx-small;color:#CCCCCC;">([http://d.hatena.ne.jp/Duke_mosso/20070130:title=07.01.30]の記事[http://d.hatena.ne.jp/Duke_mosso/20070130/p2:title=「&#x5b;ウェブ&#x5d;はてな記法におけるエスケープシーケンスの利用」]を追記しました。)</span>

「&#x5b;」や「&#x5d;」といった見慣れない文字があるかと思います。これについて説明します。

はてな記法に置いて角ブラケット(大カッコ)は特殊な文字として扱われます。例えば上の例ですとhttp記法の開始点と終了点として角ブラケットが使用されています。そのためhttp記法内で角ブラケットを使用しようとすると次の様な意図しない表示になってしまいます。

(07.01.30の記事[http://d.hatena.ne.jp/Duke_mosso/20070130/p2:title=「[ウェブ]はてな記法におけるエスケープシーケンスの利用」]を追記しました。)

このような特殊な文字を普通の文字として扱うことをエスケープといい、そのために使う文字列をエスケープシーケンスと呼びます。

このエスケープシーケンスははてな記法に特別なものではなく、そもそもこれはHTMLのエスケープシーケンスです。はてな記法で記述したものも最終的にはHTML形式となるためこれが有効となります。(但しはてなDiaryでは一度プレビュー表示をするとエスケープシーケンスが対応する文字に変換されてしまうので注意が必要です。)
HTMLのエスケープシーケンスは比較的よく知られています。例えばよく使われるものに「&lt;」と「&gt;」があります。「<(大なり)」や「>(小なり)」はHTMLにおいてはタグの開始文字、終了文字として認識されるためそれをエスケープするために「&lt;」や「&gt;」と表記することで期待通りの表示がされます。

今回使用している「&#x5b;」や「&#x5d;」もエスケープシーケンスの一つです。この場合少々ややこしくなりますが文字コードを指定しています。文字コードとは一つ一つの文字に当てられた数値コードのことでこれを指定することで任意の文字を表現することができます。「&#x5b;」では「5b」が文字コードで「[」を表しています。例えば先ほどの「<」は文字コードで表現すると「&#x3c;」となります。


はてな記法(およびHTML)で使える主なエスケープシーケンスを列挙しておきます。

エスケープシーケンス 意味
&amp; &
&lt; <
&gt; >
&quot; "
&nbsp; 空白スペース
&#n; 文字コードn(10進数)で表される文字
&#xn; 文字コードn(16進数)で表される文字
&#x28; (
&#x29; )
&#x5b; [
&#x5d; ]
&#x7c; |

【ASCII文字コードのリスト】Wikipedia::ASCII