- 締切済み
ASCII文字のエンティティネームが知りたい
HTML実体参照文字について。いわゆる半角英数文字であるASCIIコードでの - (ハイフン/マイナス) と ~ (チルダ) の実体参照記述式の時の表記名:エンティティネームが知りたいです。"&" の様な数値参照記述式では無く "&" の様に書く「実体参照記述式」について知りたいです。 自分であらたか調べましたが、この2つだけがどうしても分かりません。最初から未定義なのかとも思いましたが、半角空白を除く &#33~255; までの全てのASCIIコードに漏れ無くエンティティネームが割り振られており、通常文字列内にも頻出の + * = ? ~等と言った記号類には全て数値参照以外にも実体参照のための名前(エンティティネーム)が設定されており、実際にブラウザ上での表示も完全に同じ様になります。 >参考リンク - http://www.theasciicode.com.ar/ W3Cの公式ドキュメントも読みましたが、全ての文字を網羅しておらず、かなり抜けがありました。 >参考リンク - https://www.w3.org/TR/html5/syntax.html#named-character-references また海外の記事や技術系質問サイト(stackoverflow.com)でも良く分からない、或いは間違った回答を教えており参考になりませんでした("‐" とか "‐" とかの回答ばかり)。 HTML実体参照はWC3によって制定され、各種ブラウザ開発メーカ等に公開情報として発信されてるはずだと思うのですが、何処を探しても &#00~65999; までを完全網羅した一覧表が見当たりません。無いはずは無いと思うんですが…まさかメーカ各位で勝手にエンティティネームを割り振る訳では無いはずなので、必ずやこの世界の何処かには完全版一覧表が存在するはずなのですが、もしかしてこれは国家機密に属するモノなのでしょうか? P.S. >10進16進文字コード変換 - http://code.cside.com/3rdpage/jp/unicode/converter.html ---- 表示例 ---- ・ - : &???; - - ・ ‐ : ‐ ‐ ‐ ・ - : − − − ・ ~ : &???; ~ ~ ・ ˜ : ˜ ˜ ˜ ・ ∼ : ∼ ∼ ∼ ほぼ例外無く全てのサイトで「 ~ : ˜ ~ 」と解説記述されていますが、これは間違っており大嘘です。 実際に適当なHTMLを自作して ˜ と ~ で文字を表示させ、それぞれを上記変換サイトで確認すると、~ の時は正しく半角英数文字の ~ が出力されていますが、実体参照表記の ˜ で出力させた時の文字は見た目こそ非常に似通っており同じモノに見えますが、変換サイトや適当なPHPコード等を通して文字番地を確認すると ˜(x02DC)だと言う事が確認出来ます。つまり半角英数文字の ~ では無い別の文字。 またかなり古いログの中に、ASCII半角空白の実体参照表記が &sp; だと記述されたものを見ましたが。実際にHTML上で再現したところ実体参照として認識しませんでした。気になります。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- pringlez
- ベストアンサー率36% (598/1630)
>HTML実体参照文字について。いわゆる半角英数文字である >ASCIIコードでの - (ハイフン/マイナス) と ~ (チルダ) の >実体参照記述式の時の表記名:エンティティネームが知りたいです。 という部分だけに直接答えるなら、「無い」が回答になります。 そもそもASCIIコードは制御文字も含めて7ビット、つまり128文字の範囲で表現しようとした1960年代に確立した規格なので無理があるのです。 で、ハイフンとマイナスは本来は異なる意味の異なる文字なので表示し分けるべきですが、文字数を減らさなければならないので似てるから1つのコードに割り当ててしまったという経緯があります。なので、「-」は、ハイフンなのかマイナスなのか区別のつかないあいまいな文字、ということになります。 で、ここからは個人的な推測になりますが、文字実体参照の規格を制定する際に、「ハイフン」と「マイナス」は必要性が認められそれらを個別明確に表す文字をそれぞれ割り当て、「ハイフンとマイナスの区別がつかない文字」なんてものをわざわざ指定したい人なんていないだろうという話になり捨てられたのだと思います。 そもそもASCIIコードで「ハイフンとマイナスの区別がつかない文字」があったにもかかわらず、「ハイフン」と「マイナス」を区別したかっためにUnicodeで新たに「ハイフン」と「マイナス」を割り当てたのですから、新たに追加した文字だけで十分だろうという話になったのだとしても特段不思議なことではないと思います。 チルダも同様だと思います。チルダは、オーバースコアや波ダッシュであるかのように表示するフォントがあり、「チルダ」とはなっているものの扱いがあいまいでした。それが明確になった文字のみを指し示すようにしたのでしょう。 ただ、そもそも何のために知りたかったのですか?
- himajinTest
- ベストアンサー率47% (8/17)
一応紹介してくれた HTML5仕様書 https://www.w3.org/TR/html5/syntax.html#named-character-references の一番下にThis data is also available as a JSON file.というのがあって、このファイルには確かに、HTML4にはなかった$等がちゃんと乗っており、質問者の言うとおり、˜はU+02DC SMALL TILDEである。(この点、www.theasciicode.com.arは正しくないとみられる) #「JSON側にはあるが、表に載っていないものを使っていいものとしていいのか」は自分にも自信がない。 ただし、 「半角空白を除く &#33~255; までの全てのASCIIコードに漏れ無くエンティティネームが割り振られており」という部分には同意できない。先のJSONファイルに126番のものはなく、www.theasciicode.com.arでも出てこない。
お礼
?
お礼
そうですか…。とりあえず自身で納得がいくまで独自研究を続けます。