数値文字参照
HTML(正確にはSGML)に数値文字参照というものがある。A (文字 A を表す)のような書き方である。私は今まで数値文字参照は HTML 文書を記述した文字符号化方法での符合化位置を記述するものだと思っていた。しかし、実は規格では数値文字参照は UNICODE(正確にはUCS)での符合化位置を記述することに決まっており、HTML 文書を記述した文字符合化方法の範囲外の文字が参照できることを保証している(ということで、これも備忘録として書いたものです)。
これでようやく、Shift_JIS で記述されたページであっても、森鷗外の鷗(鷗と記述)のように UNICODE で定義された文字が記述できる理由が判った(というより、このような記述が規格で保証されているものであることが判った。今まで実装依存の方法だと思っていたのです(^^;)。他にも、内田百閒の閒(閒と記述)、土吉(𠮷)やはしご高(髙)が記述できる。私の名前は戸籍上では徳の旧字体(德)が使われているが記述できる(実際に表示される文字は表示環境で UNICODE (UCS) をどこまで実装しているかによって表示されないこともあると思います)。
ということは、us-ascii 以外の文字は全て文字参照に書き換えてしまえば絶対に化けないのだろうか。規格上はそういうことになる。しかし、規格では別の方法で符合化方法を与えることができるので文字参照によらなくても文字化けを防ぐ事はできる。実際のブラウザで表示された場合は文字参照であっても化ける時は化けるだろう。やはり、文字化けを避ける意味ではなく、文字符合化方法で表現できない文字(または、HTML上に記述できない文字)を記述する時に使用すべきものであろう。
ところで、この blog は UTF-8 (UCS の一種)で記述されているため、実は上記の文字は全て数値文字参照を使わなくてもそのまま記述できる(鷗閒など)。
| 固定リンク
« ハッカー? | トップページ | x-unknown »


コメント