Hatena::Groupcobrac8nu

数値文字参照

数値文字参照

文字参照(もじさんしょう Character entity reference)について。

厳密にはHTMLXMLで言葉の定義が違うらしいので注意。2ちゃんねるにおいては数値実体参照のこと、あるいはシフトJISで未定義のいわゆる特殊文字」のことを「ユニコード」と呼称していると思われる場合がある。

2ちゃんねるでの扱い

2ちゃんねるでは、数値実体参照(&#nnnn;のような記述)に関しては、一部の板のみで使用が可能になっており、SETTING.TXT中に、BBS_UNICODE=pass の設定のない板では使用できない。書き込んだ場合、その部分が「?」に変換されることになる。

なお、文字実体参照(&や♥など。キーワード文字列による参照)の場合は、SETTING.TXT中の設定内容に関係なく、2ch内のどの板でも使用することができる。*1

表示の差違

ブラウザごとの表示の差違があったり、同種のブラウザでもWindowsのバージョンの違いで差異が出ることもあり、AA制作時には頭の痛いところとなっている。

©の後ろに半角スペースを置くと
© |← IE6,XPで見ると1ドット減る Jane Doeだと同じ
©_|

あと&copyだとIE6,XPで見ると©に変わる Jane Doeだと変わらず(&copy)

Windows Me 上で確認した限りでは…

1. 「©+半SP」が
  IE6.0:    1ドット減る
  IE5.5:    1ドット減る
  IE5.01:    1ドット減る
  Firefox:   同じ
  Opera7.53: 同じ
  JaneDoe: 同じ
  NN4.7:   同じ 但し「(C)」として表示される

98se+IE6.0では半角spを置いても1dot減らなかったですよ。

f:id:cobrac8nu:20090620041554p:image

セミコロン「;」の省略

SGML(とそれに基づくHTML)においては、どこまでが文字参照なのかが自明な場合、後ろのセミコロンが省略できる。たとえば直後に改行文字が入るような場合や下記のような直後にタグが記述されている場合が挙げられる。

<b>&amp</b>

IEの実装では、これとは関係なく文字参照が行われる場合があり、他のソフトウエアを利用した場合と表示が異なってくる場合があるので注意を要する。

例えば、「&ampcopy;」という記述が、IEでは「& (←&amp)」と「copy;」として解釈されるのに対して、他の環境では(おそらく)「ampcopy」という名前に対する文字参照として解釈される(結果 &ampcopy; がそのまま表示される)。

OpenJane Doe 等で使用されるコンポーネントの表示はIEのものに近い。

関連記事・外部リンク

*1:漢字とカタカナのみ可の「戦時」を除く。http://gimpo.2ch.net/senji/

* はてなダイアリーキーワード:数値文字参照