
■開発メモ (現在は古くなってしまった情報、雑多な内容も含まれます)
文字参照について
HTMLの文字参照とは => 特定のユニコードをあらわす十進,十六進の数値文字参照と文字実体参照の事を指す。
特殊記号の数値文字参照(Numeric Character References)(10進法)について
関連リンク
文字参照のHTMLでの記述方法とブラウザでの表示について
数値文字参照はブラウザで表示すると全く見分けがつかない。
たとえば、 「♪」(2バイトの1文字) と 「♪」(♪) はどちらも八分音符を表している。
基本的に文字参照は &#番号;(すべて半角で アンド シャープ 番号 コロン)であらわす。
数値文字参照の実体をhtmlであらわすときの注意。
前述のようにhtml文法の中で半角のアンドは文字参照でも、Javaスクリプトのようなhtml内で用いる別言語の計算式でも使われることがわかる。つまり書き方のミスによっては単なる「文字列」とも「参照記号」とも「計算式」とも解釈される恐れがある。
それでhtmlの記述において半角のアンド(&)は文字実体参照(&)であらわす必要があり、なるだけ単体で半角アンドを使わないほうがよい。
このページのソースを見ていただければよいが、数値文字参照の実体をあらわすには「♪」(アンドシャープ9834コロン)ではなく「♪」(アンドエーエムピーコロンシャープ9834コロン)と明示的に書く必要がある。
Windowsのバージョンとユニコード
WindowsXP以前のOS(2000,Me,98,95)ではユニコードへのOSレベル対応が不十分である。
また対応するユニコード用フォントとワードパットなどの部分的にフォントを変えられるリッチテキストエディタとがあればUnicodeをきちんと表示するが、メモ帳など単なるテキストエディタだと??などと表示される。
(ブラウザIE4以上であればURLバーもUnicodeに対応してる)
特殊記号タグ コピペ用リスト
数値文字参照の面倒な入力の手間を省くため、「特殊記号タグ コピペ用リスト」や「特殊な実体参照・ドクロとか」といったサイトを参考に文字参照一覧表を作った。
「コピー」で記号をクリップボードへ送る(Windows IEのみ動作確認)。「入力」ボタンを押すと「テスト表示」のテキスボックスに評される。
文字すべてを画像に出力してみたので、自分の環境で表示できるフォントが限られていた場合も直接確認できるかもしれない。
(それぞれの文字画像の使用や流用は一向に構いませんが、画像への直リンクは止めてください。相当な数なのでアカウントも危(ry・・・。)
画像の出力に使用したフォントは「Arial Unicode MS」で、出力されなかったコードはリストから除外した。
(Arial Unicode MS:Unicodeがほとんど入っているフォント。以前はMSが無料配布。今は配布されてないのでググってください。。)
* ฺの不思議 *
数値実体参照というと絵文字を表示したいときなど、ある意味特殊な場合にしか使わないものなのだが、
そもそも、実体参照のコードから、どのフォントのコードが参照されるのか何か決まりがあるのだろうか。
一つの実験をして確認してみた。
ここで、IEのエンコード設定から、「その他→タイ語(Windows)」を選んでほしい。
今現在、↓に半角赤い白抜き四角形のように見えているのが、エンコードをタイ語にすることで、はっきりペンのマークになるはずだ。
✒ これは、ペンマークの数値文字参照 ✒を単体で打っただけである。
次に エンコードを元に戻して、次の記号は見えるだろうか↓
✒ฺ
เ(←3648)
ก(←3585)
ี(←3637)
ペンマークと3つほどのタイ語のアルファベットが表示されただろうか。
Firefoxの場合はすべて表示されていると思う。opera、ネスケはすべて表示できないかもしれない。
ちなみに、今度のペンマークのhtmlの記述は✒ฺである。
さて、この実験から何か手がかりが得られるだろうか。
ここでタイ語用のフォントがWindowsに入っているのか少し調べると確かに「Tahoma」というフォントがあった。
つまり、IEというアプリケーションは、エンコードをタイ語に変えると、表示フォントとして「Tahoma」のタイ語グループ部分を使うようである。
さらに調べると次のことがわかった。
参照番号3642付近はUnicodeで定義されるタイ語部分。
そして3642はタイ語発音記号(?)の「下点」を表し、数値参照をこの3642と組み合わせることでタイ語だと認識させ、絵文字部分のフォントだけTahoma(のタイ語書式部分)で表示されるようだ。
IEやFirefoxは1つのページの中で何種類もフォントを組み合わせて表示でき、ネスケやオペラはその点が弱い。
さらに一般的な記号、つまりMS IME等で「きごう」「ろしあ」「ぎりしゃ」「すうがく」「かっこ」「ぎじゅつ」「たんい」「ぎれ」を変換して出る記号があるが、これらはฺなしで表示できる(一覧) これらはMS ゴシックフォントの中に組み込まれている文字でユニコードとは別物のようだ。
おもしろいことにスタイルシート等でページ全体にTahomaを指定した上で、3642を付けず単一の文字参照を打っても表示されない。なぜかというとIEが文字参照の形式からOSが実際に使う文字コード表に変換してフォントを呼び出しているからである(変換の仕組み)
フォントについてはTahomaの他にも[Angsana New] [AngsanaUPC] [Browallia New] [BrowalliaUPC] [Cordia New] [CordiaUPC] [Dillenia New] [DilleniaUPC] [EucrosiaUPC] [FreesiaUPC] [IrisUPC] [JasmineUPC] [KodchiangUPC] [LilyUPC] [Microsoft Sans Serif] でタイ語や、特殊文字を表示可能だった。(絵文字をMSワードパッドに貼り付けるとその部分のフォントは"Cordia New"になった。)
なぜタイ語と特殊文字の愛称がいいのか気になったので、本屋で文献を立ち読みした所タイ語自体が特殊文字だからという結論を得たw。
タイ語は発音記号などが複雑で、アルファペット(?)の配列が不規則なので、一般的なキーボードから打つのは難しい。また、フォントで定義されている発音記号とタイの人が生活の中で実際に使っている発音記号にも互換性がない。これらの理由からタイ語、ヘブライ語などは特殊文字扱いなのだそうだ。
以上のようなことから コードを書くと、ブラウザがそれを解釈し、文字コードの変換とフォントの割り当てが行われるというプロセス。またIEの場合絵文字とユニコードのタイ語部分のかかわりがよくわかった。
よく使われる特殊文字
(まだ未整理、作成中。そのうちスレからコピペさせてもらいます)
数値文字参照
番外・・・ MSが急遽パッチまで出して削除した"BookShelf Symbol7"というフォント。
"ハーケンクロイツ"と"ダビデの星"が某国では国家的な問題だったそうで・・・。個人的には マル悪 と マル善 が気になるのだが。
特殊文字の文字実体参照について
すべて半角で ♥ もしくは数値文字参照では ♥と書く
♣(♣) → クラブ
♠(♠) → スペード
♦(♦) → ダイヤ
また、前述の
& → アンド
などもある
2ch Tips その1
2ちゃんねるに参照タグを書き込む際、板によっては「&#半角数字;」の数値文字参照が「?」に変換される仕様となっている。
これらの板ではe-words資料室などを参考にして「&半角英字;」文字実態参照を使う。
その2
他の人の使っている特殊記号を出したい場合は、ブラウザの 「表示>ソース」
を選択すればどのようなコマンドで出しているか読める。(注)以前は書き込む欄に特殊記号をコピペしても書き込めたが、現在はコピペしても「?」に変換される。
※ブラウザによっては表示できない可能性あり。
※ネスケやWin98+IE5ではハートマークが表示されない。
その3
半角スペースは「Windowsでハートを出す」要領で (すべて半角)でも出る。
これと普通の半角スペースを交互に入力していけば、とりあえずWindowsでは正常に表示される。
AAの横幅は700px位までらしい。
現在は古くなってしまった情報、雑多な内容も含まれます。参考にする際は最新の情報と比較して判断する必要があります。
▲トップヘ