intime o'

ディープ・ソートは、はてしない威厳をこめ、あくまでも落ち着き払って答えた。(ダグラス・アダムス著・安原和見訳「銀河ヒッチハイクガイド」より)
文字参照 2011/12/23(Fri.)
 よく「HTML特殊文字」だとか呼ばれてるから変な名前だなと思い
ながらも、それが正しい名称だと思っていたけれど、いやまあ、そういう
名前は実際存在するとしても「HTMLにおける、或いはXMLにおける文字参照」
と言ったほうが正確みたい。もちろん「HTMLエスケープ」もまた意味が違
う。文字参照によって表示できる文字は自分の観察によるとUnicodeらしい。

文字参照は「&keyword;」と書くか、或いは番号を用いて「@」(十進法)
とか、「@」(十六進法)と書く。ただ自分は、ソースコードを読んだ時に
分かりやすいことと、一旦覚えれば忘れ難いことからkeywordで入力したい。
しかし必ずしもkeywordは存在しないし調べるのも割りと面倒なのだ。

文字がわかっている場合。
「♥」という文字はIMEにもよるが「はーと」を変換すれば入力できるし、
或いはこの文字が使われている文章を見つけてクリップボードから取得するかも
しれない。
文字参照のための番号は簡単に知ることができて、Unicodeとしての文字コード
がそのまま使われているみたい。何でも良いがjsなら
> "♥".charCodeAt()
とすると「9829」と分かった。試しに「♥」とすると上手く表示された。
十六進法にすると2665で「♥」でも出力される。

或いはwebで調べても良い。こうすればkeywordも番号も分かるのだけど
Googleでそういった記号は無視されて単に「♥ 」とGoogle検索
を掛けても何も表示されない。その文字を形容する語を知っていれば
「文字参照 ハート」と検索することで分かるけど。

自分が今までしてきた方法としては
http://e-words.jp/p/r-htmlentity.html
http://www.htmq.com/text/
http://www.pst.co.jp/powersoft/html/htmlChar.htm
大体この3つくらいのページを開いて「♥」でページ内検索に掛けて調べて
た。3つ上げたのはどれも上手に纏められて無くて大体どのページにも他のページ
に載っていないものが載っている。統合すべきなのに。

・キーワードがわかっている場合
キーワードから番号に変換するのは一旦HTMLとして出力させる必要がある。
つまり「キーワード→文字→文字コード=番号」
もっとも、そんなコトをする機会は無いだろうけれど。
だってキーワード分かってれば十分だから。

例えば「♥」が何番の文字参照をするのかを調べるのにjsなら
var X=document.createElement("a");
X.innerHTML="♥"
X.innerHTML.charCodeAt()
とすることで文字コードを得る。

文字が具体的に手元にない時
困る。プランク定数の、あの、小文字のhの頭に短い横棒が引かれてるあの記号
が書きたいのに。keywordは推測しやすいものから一体どういう略称のつもりな
のか、と憤慨するようなものまである。∞が∞ってどういうことだよ。
infinityをinfinなんて略し方をするのか英語圏の人は。

Unicode表から探す。
http://www.tamasoft.co.jp/ja/general-info/unicode-decimal.html
その欲しい記号をこの表から自力で探そうか。その表を開いても具体的に文字
が無いからCtrl+Fで検索できないのでゆっくりスクロールしながら自分の肉眼
で見つけるしかない。恐ろしい。その文字についての説明があれば少しは希望
が見えるのに。

結局Wikipedia最強。
「プランク定数」でWikipediaのページを見ると
http://ja.wikipedia.org/wiki/%E3%83%97%E3%83%A9%E3%83%B3%E3%82%AF%E5%AE%9A%E6%95%B0 (ℏ Unicode U+210F、JIS X 0213 1-3-61)
Unicodeの210Fだと分かったので「ℏ」と入力すると「ℏ」と出力された。 イライラしてきた。 そっからキーワードはどうやって得ればいいんだろう。 x210F、文字参照、十進法に直して8463でググってもその記号までは出てくるけど、 どのページにもキーワードは載っていなかった。因みにだけれど自分は単なる類推 から「ℏ」でこれを表示させることができると気附いた。 ちなみにもう一つだけ「&?bar;」で表示できる「?」が存在します。 そもそも皆知らないというだけで実はすべての文字参照にキーワードが存在する んじゃないの?実は、だよ。でもブラウザの中にキーワードを適当なUnicode文字 に変換する為のルーチンを入れてるはずなのだから(だって外部dtdもネット接続 も現実的に必要ないから)、ソースコード読めばどこかには書いてあるんだよ、 その一覧がさ。

コメ(0) | トラ(0)