SGML文字参照

文字参照 (HTML、XML、SGML)

[91] SGML 派生マーク付け言語における文字参照 (character reference) は、文字の番号や短い名前によって表す文字の代替表現です。 マーク付けの一部を表す文字データとして含めるために使ったり、 通常の方法で入力しがたい文字を表すために使ったりします。

仕様書

呼称と定義・分類

[90] HTML では、名前付き文字参照十進数文字参照十六進数文字参照の総称を文字参照と呼んでいます >>89

文脈

[92] HTML では文字参照は、 通常要素外来要素エスケープ可能生テキスト要素内容の一部として >>93、 あるいは属性値の一部として >>94 用いることができます。

[95] >>92 のいずれも文字参照の他にテキストを用いることができる文脈ですが、 曖昧アンドが禁止されています >>93, >>94文字参照にも曖昧アンドにも一致しない &テキストとして解釈され、著者はこれを用いても構いません。 曖昧アンドである &著者が用いてはなりません。

[96] 曖昧アンド (ambiguous ampersand) は、 & の後に1文字以上のASCII英数字が続き、その後に ; が続くもののうち、名前付き文字参照でないものです >>89

  1. &
  2. +
    1. ASCII英数字
  3. ;
[102] ; で終わらない (不適合の) 文字参照を禁止しないといけない気がしますが、 >>99 で禁止がなくなってしまっています。 また、正しい文字参照曖昧アンドに含まれないので、文字参照テキストとしても解釈し得る状態になっていて、厳密には不適切な状態になっています。。。

文字コード

[81] 現在の HTML では文字参照Unicode符号位置として解釈されます。

[82] ただし 0x80 - 0x9F の範囲は例外的に Windows-1252符号位置として解釈されます。 21世紀初頭頃にそのように利用、実装されていたことによります。


[85] 参照処理モデル実装前の20世紀Webブラウザーでは、 そのままのバイトを表すものとして実装されていました。 数値文字参照のみならず文字実体参照もそのようになっていました。

[87] 例えば日本語 (シフトJIS) 環境のWebブラウザーでは ©© ではなく (半角カナ) で表示されていました。

[108] 意図的な仕様というよりは、あまり深く考えずに実装されていた + 技術的制約によるものでしょう。

[109] 参照処理モデル実装後でも、フォント依存符号化フォントとの併用等により、 U+0000 - U+00FF文字参照が本来の文字とは異なる HTML文書が作られています。

[110] 実例: Latin3, ジョージアの8ビット符号


[112] iモードではシフトJIS文字参照が使われていました。

HTML 文字参照 XML DTD

[18] XML においてはいくつかの公開識別子を持つ外部実体HTML名前付き文字参照宣言するものと解釈されることになっています。

スクリプトマクロ

スクリプトマクロ

PukiWiki

[20] PukiWikiのテキスト整形のルール >>47 では、 HTML文字参照の一部と、独自の文字参照が使えるとされます。

[21] &heart;, ⌣, &t; など独自の文字参照があります。 >>47

[23] &date;, &page; など保存時メタ情報に置換される構文があります。 >>47

[24] &counter; など動的に決まる値に置き換えられる構文があります。 >>47

[25] &ruby(ルビ){インライン要素}; など引数を取る構文があります。 >>47

[26] このように SGML文字参照から大きく離れて一般の記述構文にまで拡張されています。

[47] FormattingRules - PukiWiki-official (, ) https://pukiwiki.osdn.jp/?FormattingRules#ibd49862

16進数は半角小文字で指定する必要があります(XHTML 1.0 第2版から小文字に限定されました)。

LeXML

歴史

SGML

[116] Unicode Consortium は一連のSGML文字実体Unicode文字との対応表を公表しています。 >>115

[117] (当時の) Unicode の文字に対応しないとされるものが21個含まれています。

HTML の誕生と文字参照

[53] WorldWideWeb/NextStep/Implementation/ParseHTML.h at master · cynthia/WorldWideWeb · GitHub, https://github.com/cynthia/WorldWideWeb/blob/master/NextStep/Implementation/ParseHTML.h

文字エスケープ拡大の諸提案

[48] SGML文字実体参照の体系が多数提案されました。 また、 SGML 以外の対象でも利用されました。

[54] Cello, HTML3, STIX, SI 1680, XML Entity Definitions for Characters, ERCS, KanjiBase, &M, BUCS, EKBS, テキスト形式TRONコード, CHISE文字参照, シフトJIS文字参照, MUFI, IDS (別構文あり), SAT外字, 代用表記 (新・新しい日本語を作る会)

[61] Stream-based style sheets, , https://web.archive.org/web/19990219192957/http://odur.let.rug.nl/%7Ebert/style.html

[14] IPAmj明朝フォントの研究 ― 実装編 ― - FIELD NOTES: 書を持って街へ出よう, https://field-notes.hatenablog.jp/entry/20111223/1324634005

前回の調査結果を元に Field Reports 1.4 に以下の機能を盛り込みました。

ただし,プログラミング言語によっては2バイトを超えるUnicode文字をエスケープシーケンスなどで表現できないので,数値参照文字も使えるようにしました。

&#dddd; または &#xhhhh; (ddddは10進数,hhhhは16進数)

ついでに,CIDまたはGIDで直接グリフを指定できるよう「グリフ参照文字」も使えるようにしました。

&@#dddd; または &@#xhhhh;l

文字参照を独自拡張した「グリフ名参照」により,グリフ名を指定できるようにしました。 以下のような書式になります。

&@<グリフ名>;

[19] Field Reports 1.4 の新機能 (3) ― グリフ直接指定 ― - 合同会社フィールドワークス, https://www.field-works.co.jp/2011/12/16/field-reports-1-4-%E3%81%AE%E6%96%B0%E6%A9%9F%E8%83%BD-3-%E3%82%B0%E3%83%AA%E3%83%95%E7%9B%B4%E6%8E%A5%E6%8C%87%E5%AE%9A/

[28] HTML TADS deviations from standard HTML specifications, , https://www.tads.org/t3doc/doc/htmltads/deviate.htm#TABLEadditions

[29] Word Wrapping and Line Breaking in HTML TADS, , https://www.tads.org/t3doc/doc/htmltads/linebrk.htm

[51] HTML TADS Latin-2 Character Entities, , https://www.tads.org/t3doc/doc/htmltads/latin2.htm

[52] Guide to the W3C XML Specification (XMLspec) DTD, Version 2.1, , https://www.w3.org/XML/1998/06/xmlspec-report.htm#AEN3352

[65] HTML+ predefined icon-like symbols, , https://web.archive.org/web/20010422140733/http://odur.let.rug.nl/~bert/WWWicn/Sample.html

Mosaic の文字参照

[211] 付で GitHub で公開されている、 著作権表記がある NCSA Mosaic のソースコードには、

があります。 >>210

[218] なお、これはその後になって最新の HTML Standard 由来の表に置換されてしまっています。その際に HTML Standard の規定を十分に理解していない人が作業したらしく、 HTML Standard; 付きと ; なしの文字参照の違いを適切に扱えていません。

[219] hibar のみ現行仕様と異なります。 Mosaic が何らかの理由で独自仕様としてしまったものか、 先行する何らかの仕様か実装を模倣したものかは不明です。

[220] 手元にある歴代 HTML 仕様等の DTD の中で hibar を採用したものは1つも見当たりません。

HTF の文字参照

[136] 西暦1990年代前半 (平成時代初期) 頃に使われた SGML応用である HTFLatin1 の多くの文字に対する文字参照を定めています。 >>137

[138] 現在の HTML のものに近いですが、微妙に違います。

[139] brkbarhibar があり、それらの文字に他の名前はありません。

[221] Mosaic の実装との前後関係は微妙な時期であり不明です。 hibar が共通しているのは、共通の原典がありそうです。 brkbar は異なっており、一方が他方を模倣したという直接の関係ではなさそうです。
[222] 手元にある歴代 HTML 仕様等の DTD の中で hibar, brkbar を採用したものは1つも見当たりません。

Martin Ramsch の文字参照の表

[140] Martin Ramsch頃作成した ISO/IEC 8859-1 用の文字参照の一覧表があります。 >>143

[148] この表は現在もあちこちに複製や派生版が残ります。また、いろいろなところからリンクされています。 現存しないものも含めれば相当の人の目に触れていたと思われます。

[149] Lynx には遅くても 2.5 (平成8年) 時点でテスト用ファイルとして取り込まれていたようで >>131、現在も公式サイトに残っています >>146。 他の文字コードの同様の表も作られています >>147

[168] 本人サイトの版 >>143, >>162 より、過去に次の版があったことは確実と思われます。

[176] 過去の Lynx のテストファイルにはと共にの日付があります。 >>131 の最初の版からの派生であることは間違いないと思われますが、 の日付を残したのが本人なのか、 Lynx に取り込んだ別人なのかは不明です。 後者の場合他にも別人による改変が加わっている可能性がありますが、不明です。

[188] 現在の Lynx のテストファイルにはの日付があります。 >>146 内容は本家の>>162 と似ていますが、微妙に違いがあり、 Lynx 側で本家の最新版を取り込んだ後に独自に修正したものと思われます。

[177] >>142の日付だけがありますが、 本人によるものか別人による改変なのか不明です。 本体も大幅に改められています。 日付形式>>163以後改められていますが、 >>142 は旧形式を踏襲していますから、 古い版からの派生の可能性があります。 後述の brkbar, hibar の箇所を見ると、 かなり古い版から派生している可能性があります。


[153] ¦ について、

[155] ¨ について、

  • [183] SGML には umldie があります。 >>115
  • [184] HTF には uml があります。 >>137
  • [185] 古形を残している可能性がある版には uml があります。 >>142
  • [186] Lynx 版には uml があります。 >>131
  • [187] 平成8年版には uml と共に die があります。 重複であることが説明されていますが、理由などは記載がありません。 >>143
  • [191] 平成12年版には uml と共に die があります。 重複であることが説明されていますが、理由などは記載がありません。 >>162
  • [192] Lynx 現行版には uml と共に die があります。 重複であることが説明されています。 die は非標準と書かれています。 >>146
  • [156] 現在の Webブラウザーはどちらも対応しています。

[157] ¯ について、

[159] Ð について、

[223] 手元にある歴代 HTML 仕様等の DTD の中で hibar, brkbar, die を採用したものは1つも見当たりません。 Dstrok を採用したものも ISO 8879-1986//ENTITIES Added Latin 2//EN (ISOlat2) そのものだけです。 dieISOdia 由来であり、 MathML 以前に SGMLHTML で採用した事例が無かったということでしょう。 平成8年版はどこから拾ってきたのでしょう。

[207] これら4字の各版の記載の変遷を見ると、この表は元々 HTF文字参照の一覧に基づいていたものが、 HTML に合わせて訂正されてきたことがわかります。

[208] 4字中3字について>>142HTF と一致するもののみを記載しています。日付が新しいとはいえ、 HTML と一致するものを削除する動機に乏しいため、 古形を伝えるものではないかと推測しています。ただ、 Ð について HTF と一致していないのは解せません。

[161] Lynx>>131 には

This table grew out of an ISO Latin-1 Character Set overview related to the Hyper-G Text Format (HTF). The entity names &brkbar; and &Dstrok; seem to be unique to HTF.

とあります。 HTF に由来する表であることが明言されています。

[150] といいつつこの表自体は HTML文書であり、 文字参照の文字列と文字参照として記述された文字とを対比する形の例文となっています。 利用しているWebブラウザーの動作確認と HTML文書著者のための手引きを兼ねたものと推測されます。 >>161 の部分の続きの説明でも HTML の仕様を参照しています。

[151] HTML の説明なのに HTF に由来するというのも不思議な話ですが、 この時代は HTML の仕様が未確定で流動的である一方で、 SGML の世界で全体として緩やかにSGML文字実体が共有されているような状況でしたから、 当初はその違いをあまり深く考えることなく流用していたのでしょうか。

[152] ともかくこの表はいろいろな人に参照されて使われました。いろいろな人、には Lynx の開発者も含まれました。


[258] その他、伝播の過程は不明であるものの、類似した特徴を持つ文字参照の表があちこちにあります。

[241] Process Hacker: ProcessHacker/mxml/mxml-entity.c Source File, , https://processhacker.sourceforge.io/doc/mxml-entity_8c_source.html

    4  * Character entity support code for Mini-XML, a small XML-like
    5  * file parsing library.
  151  * '_mxml_entity_cb()' - Lookup standard (X)HTML entities.
  167     { "AElig",          198 },
  168     { "Aacute",         193 },
  169     { "Acirc",          194 },
  170     { "Agrave",         192 },
  171     { "Alpha",          913 },
  172     { "Aring",          197 },
  173     { "Atilde",         195 },
  174     { "Auml",           196 },
  175     { "Beta",           914 },
  176     { "Ccedil",         199 },
  177     { "Chi",            935 },
  178     { "Dagger",         8225 },
  179     { "Delta",          916 },
  180     { "Dstrok",         208 },
  181     { "ETH",            208 },
  182     { "Eacute",         201 },
  183     { "Ecirc",          202 },
  184     { "Egrave",         200 },
  185     { "Epsilon",        917 },
  186     { "Eta",            919 },
  187     { "Euml",           203 },
  188     { "Gamma",          915 },
  189     { "Iacute",         205 },
  190     { "Icirc",          206 },
  191     { "Igrave",         204 },
  192     { "Iota",           921 },
  193     { "Iuml",           207 },
  194     { "Kappa",          922 },
  195     { "Lambda",         923 },
  196     { "Mu",             924 },
  197     { "Ntilde",         209 },
  198     { "Nu",             925 },
  199     { "OElig",          338 },
  200     { "Oacute",         211 },
  201     { "Ocirc",          212 },
  202     { "Ograve",         210 },
  203     { "Omega",          937 },
  204     { "Omicron",        927 },
  205     { "Oslash",         216 },
  206     { "Otilde",         213 },
  207     { "Ouml",           214 },
  208     { "Phi",            934 },
  209     { "Pi",             928 },
  210     { "Prime",          8243 },
  211     { "Psi",            936 },
  212     { "Rho",            929 },
  213     { "Scaron",         352 },
  214     { "Sigma",          931 },
  215     { "THORN",          222 },
  216     { "Tau",            932 },
  217     { "Theta",          920 },
  218     { "Uacute",         218 },
  219     { "Ucirc",          219 },
  220     { "Ugrave",         217 },
  221     { "Upsilon",        933 },
  222     { "Uuml",           220 },
  223     { "Xi",             926 },
  224     { "Yacute",         221 },
  225     { "Yuml",           376 },
  226     { "Zeta",           918 },
  227     { "aacute",         225 },
  228     { "acirc",          226 },
  229     { "acute",          180 },
  230     { "aelig",          230 },
  231     { "agrave",         224 },
  232     { "alefsym",        8501 },
  233     { "alpha",          945 },
  234     { "amp",            '&' },
  235     { "and",            8743 },
  236     { "ang",            8736 },
  237     { "apos",           '\'' },
  238     { "aring",          229 },
  239     { "asymp",          8776 },
  240     { "atilde",         227 },
  241     { "auml",           228 },
  242     { "bdquo",          8222 },
  243     { "beta",           946 },
  244     { "brkbar",         166 },
  245     { "brvbar",         166 },
  246     { "bull",           8226 },
  247     { "cap",            8745 },
  248     { "ccedil",         231 },
  249     { "cedil",          184 },
  250     { "cent",           162 },
  251     { "chi",            967 },
  252     { "circ",           710 },
  253     { "clubs",          9827 },
  254     { "cong",           8773 },
  255     { "copy",           169 },
  256     { "crarr",          8629 },
  257     { "cup",            8746 },
  258     { "curren",         164 },
  259     { "dArr",           8659 },
  260     { "dagger",         8224 },
  261     { "darr",           8595 },
  262     { "deg",            176 },
  263     { "delta",          948 },
  264     { "diams",          9830 },
  265     { "die",            168 },
  266     { "divide",         247 },
  267     { "eacute",         233 },
  268     { "ecirc",          234 },
  269     { "egrave",         232 },
  270     { "empty",          8709 },
  271     { "emsp",           8195 },
  272     { "ensp",           8194 },
  273     { "epsilon",        949 },
  274     { "equiv",          8801 },
  275     { "eta",            951 },
  276     { "eth",            240 },
  277     { "euml",           235 },
  278     { "euro",           8364 },
  279     { "exist",          8707 },
  280     { "fnof",           402 },
  281     { "forall",         8704 },
  282     { "frac12",         189 },
  283     { "frac14",         188 },
  284     { "frac34",         190 },
  285     { "frasl",          8260 },
  286     { "gamma",          947 },
  287     { "ge",             8805 },
  288     { "gt",             '>' },
  289     { "hArr",           8660 },
  290     { "harr",           8596 },
  291     { "hearts",         9829 },
  292     { "hellip",         8230 },
  293     { "hibar",          175 },
  294     { "iacute",         237 },
  295     { "icirc",          238 },
  296     { "iexcl",          161 },
  297     { "igrave",         236 },
  298     { "image",          8465 },
  299     { "infin",          8734 },
  300     { "int",            8747 },
  301     { "iota",           953 },
  302     { "iquest",         191 },
  303     { "isin",           8712 },
  304     { "iuml",           239 },
  305     { "kappa",          954 },
  306     { "lArr",           8656 },
  307     { "lambda",         955 },
  308     { "lang",           9001 },
  309     { "laquo",          171 },
  310     { "larr",           8592 },
  311     { "lceil",          8968 },
  312     { "ldquo",          8220 },
  313     { "le",             8804 },
  314     { "lfloor",         8970 },
  315     { "lowast",         8727 },
  316     { "loz",            9674 },
  317     { "lrm",            8206 },
  318     { "lsaquo",         8249 },
  319     { "lsquo",          8216 },
  320     { "lt",             '<' },
  321     { "macr",           175 },
  322     { "mdash",          8212 },
  323     { "micro",          181 },
  324     { "middot",         183 },
  325     { "minus",          8722 },
  326     { "mu",             956 },
  327     { "nabla",          8711 },
  328     { "nbsp",           160 },
  329     { "ndash",          8211 },
  330     { "ne",             8800 },
  331     { "ni",             8715 },
  332     { "not",            172 },
  333     { "notin",          8713 },
  334     { "nsub",           8836 },
  335     { "ntilde",         241 },
  336     { "nu",             957 },
  337     { "oacute",         243 },
  338     { "ocirc",          244 },
  339     { "oelig",          339 },
  340     { "ograve",         242 },
  341     { "oline",          8254 },
  342     { "omega",          969 },
  343     { "omicron",        959 },
  344     { "oplus",          8853 },
  345     { "or",             8744 },
  346     { "ordf",           170 },
  347     { "ordm",           186 },
  348     { "oslash",         248 },
  349     { "otilde",         245 },
  350     { "otimes",         8855 },
  351     { "ouml",           246 },
  352     { "para",           182 },
  353     { "part",           8706 },
  354     { "permil",         8240 },
  355     { "perp",           8869 },
  356     { "phi",            966 },
  357     { "pi",             960 },
  358     { "piv",            982 },
  359     { "plusmn",         177 },
  360     { "pound",          163 },
  361     { "prime",          8242 },
  362     { "prod",           8719 },
  363     { "prop",           8733 },
  364     { "psi",            968 },
  365     { "quot",           '\"' },
  366     { "rArr",           8658 },
  367     { "radic",          8730 },
  368     { "rang",           9002 },
  369     { "raquo",          187 },
  370     { "rarr",           8594 },
  371     { "rceil",          8969 },
  372     { "rdquo",          8221 },
  373     { "real",           8476 },
  374     { "reg",            174 },
  375     { "rfloor",         8971 },
  376     { "rho",            961 },
  377     { "rlm",            8207 },
  378     { "rsaquo",         8250 },
  379     { "rsquo",          8217 },
  380     { "sbquo",          8218 },
  381     { "scaron",         353 },
  382     { "sdot",           8901 },
  383     { "sect",           167 },
  384     { "shy",            173 },
  385     { "sigma",          963 },
  386     { "sigmaf",         962 },
  387     { "sim",            8764 },
  388     { "spades",         9824 },
  389     { "sub",            8834 },
  390     { "sube",           8838 },
  391     { "sum",            8721 },
  392     { "sup",            8835 },
  393     { "sup1",           185 },
  394     { "sup2",           178 },
  395     { "sup3",           179 },
  396     { "supe",           8839 },
  397     { "szlig",          223 },
  398     { "tau",            964 },
  399     { "there4",         8756 },
  400     { "theta",          952 },
  401     { "thetasym",       977 },
  402     { "thinsp",         8201 },
  403     { "thorn",          254 },
  404     { "tilde",          732 },
  405     { "times",          215 },
  406     { "trade",          8482 },
  407     { "uArr",           8657 },
  408     { "uacute",         250 },
  409     { "uarr",           8593 },
  410     { "ucirc",          251 },
  411     { "ugrave",         249 },
  412     { "uml",            168 },
  413     { "upsih",          978 },
  414     { "upsilon",        965 },
  415     { "uuml",           252 },
  416     { "weierp",         8472 },
  417     { "xi",             958 },
  418     { "yacute",         253 },
  419     { "yen",            165 },
  420     { "yuml",           255 },
  421     { "zeta",           950 },
  422     { "zwj",            8205 },
  423     { "zwnj",           8204 }

[242] X(HTML) と書いてはありますが、どの仕様とも一致していなそうです。 brkbar, brvbar, uml, die, macr, hibar, ETH, Dstrok が含まれています。


[236] >>235 >>237 hibar を実際に利用した事例。 他に brvbar, uml を利用。 また、 REG を利用。

Lynx の文字参照

[114] 現在の Lynx のソースコードには4種類の文字参照の集合が含まれています。

[120] 1つは 「HTML5」 とあり、ある時点の HTML5文字参照の一覧に由来すると思われます。 >>119

[123] 詳しく見ていませんが、現行 HTML Standard のものとはいくらか違いのある古い版のようです。

[121] 1つは 「Nov 1997 HTML 4.0 draft」 http://www.w3.org/TR/PR-html40/sgml/entities.html に由来するものです。 >>119

[122] 1つは ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT (>>115 の旧所在) に由来し、 HTML4 に合わせた修正を加えたものです。 >>119

[209] 現在の HTML にないものも多いです。

[124] >>115Unicode と対応付けていない21個はこちらでもコメントとなっています。

[125] 少なくても4個、独自の追加があります。次のような注釈があります >>119

   * Add few (obsolete) synonyms for compatibility with Lynx/2.5 and up:
          "brkbar"  for "brvbar" 0x00A6
          "emdash"  for "mdash" 0x2014
          "endash"  for "ndash" 0x2013
          "hibar"  for "macr" 0x00AF

[126] 1つは Latin1 に相当する96個です。 >>118 このうち95個は HTML2 と同じと思われます (brvbar があります)。 hibar があり、 macr がありません。

[130] Lynx 2.5に公開されたようです。

[133] Lynx 2.5 当時のテスト用 HTML ファイルで 「ISO LATIN1」と題したものに、

  <li>"&emsp;",		/* emsp, em space - not collapsed */
  <li>"&ensp;",		/* ensp, en space - not collapsed */

があります。 マクロンや broken bar はありません。 >>132 このファイルは Lynx 2.5 の配布ファイル中では付となっています。 >>261

[134] Lynx 2.5 当時のテスト用 HTML ファイルで 「iso8859-1 (Latin-1)」と題したものに、 >>149 があります。 brvbar の他に brkbar があり、 マクロンhibar だけがあります。 uml はあって die はありません。 ETHDstrok があります。 >>131 このファイルは Lynx 2.5 の配布ファイル中では付となっています。 >>261

[262] Lynx 2.5 の配布ファイル中、 付の LYCharSets.c に、 >>126 相当の一覧があります。

	"brvbar",	/* 166,	broken vertical bar, (brkbar) */
	"uml",		/* 168,	spacing diaresis */
	"hibar",	/* 175,	spacing macron */
	"ETH",		/* 208,	capital Eth, Icelandic (Dstrok) */ 

となっていて、 >>134 の記述と整合しています。

[263] Lynx 2.5 の配布ファイル中、 付の HTMLDTD.c に、111個の一覧があります。こちらが HTMLの構文解析で使われる定義です。 >>261

  "Dstrok",	/* capital Eth, Icelandic */ 
  "ETH",	/* capital Eth, Icelandic */ 
  "brkbar",	/* broken vertical bar */
  "brvbar",	/* broken vertical bar */
  "die",	/* spacing diaresis */
  "emdash",	/* dash the width of emsp */
  "endash",	/* dash the width of ensp */
  "hibar",	/* spacing macron */
  "uml",	/* spacing diaresis */

となっています。 Latin1 のものに加えてそれ以外も多数あり、 どれが何由来かは書かれていません。

[128] 現在公式サイトから入手可能な最古である付の lynx2.8.1rel.2 >>127 はこれら2箇所の一覧表と同等のものがあり、大きな変更はありませんが、 後者の一覧に thinsp が加わっています。

[245] null, , https://bisqwit.iki.fi/src/entities.h

[246] >>245 は「From Lynx」と注釈があります。 SGML文字実体を採用したものの複製です。

曖昧アンドの縮小

[101] HTML曖昧アンドの定義は徐々に縮小していき、最終的には名前付き文字参照と同じ構文のものになっています。 言い換えると、エスケープしなくても良い & が徐々に増えていき、現在又は将来の名前付き文字参照と構文上区別可能ならすべて認められることになっています。

[27] Welcome to Netscape Navigator 3.0, , https://web.archive.org/web/20020630200918/http://wp.netscape.com/eng/mozilla/3.0/relnotes/windows-3.0.html#JavaScriptBugs

メモ

[9]

(275) 文字参照 (character reference)
1文字置換される参照JIS X 4151-1992 3.

[1]SGML】 SGML の文字参照には、数値指定文字参照名前指定文字参照があります。 前者は文書文字集合における文字番号を使って文字を参照します。例えば &#33 は、文字番号 33 の文字 (ISO/IEC 646:1991 IRV では !。) を表します。後者は機能文字又は SGML宣言具象構文の追加機能に指定してある文字を、その名前を使って参照します。 たとえば、 &#RE は機能文字 RE (記録終了) を表します。

Web SGML では、更に16進文字参照が追加されました。

[2] これに類したものとして、文字実体参照があります。 これは、文字1文字 (と判断されるもの。) だけの一般実体を参照するものです。例えば、 &Aacuteアキュート・アクセントつきの文字 A に置換されるかもしれません。

(ちなみに、「文字実体」・「文字実体集合」 という言葉は SGML には出てきますが、 「文字実体参照」という言葉は HTML4 で出てきます。 (という話は言葉遊びみたいなものですが。))

[3] 文字参照は、その文字が他の手段で簡便に書けない場合に限って使うことが望ましいとされています。 (JISX4151‐1992 8.5 参照。)

[7]

[6] 文字参照を使うと良い場面 (JIS 参考3 7.2 参照。) :

など。

[10] Firefox 2.0 で U+10FFFF より大きな16進数を指定すると、値によって:

U-7FFFFFFF までならサロゲート・ペアへの変換の計算を拡張したらしき2文字の列になります。

http://software.hixie.ch/utilities/js/live-dom-viewer/?%3Cbody%3E%0A%3Cp%3E%26%23x110000%3B%3C%2Fp%3E%0A%3Cscript%3E%0A%20%20var%20pv%20%3D%20document.getElementsByTagName%20('p')%5B0%5D.firstChild.data%3B%0A%20%20if%20(pv%20%3D%3D%20%22%5CuFFFD%22)%20%7B%0A%20%20%20%20document.write%20('%3Cp%20id%3Dresult%20class%3DPASS%3EPASS%3C%2Fp%3E')%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20document.write%20('%3Cp%20id%3Dresult%20class%3DFAIL%3EFAIL%20(')%3B%0A%20%20%20%20for%20(var%20i%20%3D%200%3B%20i%20%3C%20pv.length%3B%20i%2B%2B)%20%7B%0A%20%20%20%20%20%20document.write%20(pv.charCodeAt%20(i).toString%20(16)%20%2B%20'%2C')%3B%0A%20%20%20%20%7D%0A%20%20%20%20document.write%20(')%3C%2Fp%3E')%3B%0A%20%20%7D%0A%3C%2Fscript%3E%3Cnoscript%3E%3Cp%20id%3Dtest%20class%3DFAIL%3EFAIL%20(noscript)%3C%2Fp%3E%3C%2Fnoscript%3E%0A, http://software.hixie.ch/utilities/js/live-dom-viewer/?%3Cbody%3E%0A%3Cp%3E%26%23x7fffffff%3B%3C%2Fp%3E%0A%3Cscript%3E%0A%20%20var%20pv%20%3D%20document.getElementsByTagName%20('p')%5B0%5D.firstChild.data%3B%0A%20%20if%20(pv%20%3D%3D%20%22%5CuFFFD%22)%20%7B%0A%20%20%20%20document.write%20('%3Cp%20id%3Dresult%20class%3DPASS%3EPASS%3C%2Fp%3E')%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20document.write%20('%3Cp%20id%3Dresult%20class%3DFAIL%3EFAIL%20(')%3B%0A%20%20%20%20for%20(var%20i%20%3D%200%3B%20i%20%3C%20pv.length%3B%20i%2B%2B)%20%7B%0A%20%20%20%20%20%20document.write%20(pv.charCodeAt%20(i).toString%20(16)%20%2B%20'%2C')%3B%0A%20%20%20%20%7D%0A%20%20%20%20document.write%20(')%3C%2Fp%3E')%3B%0A%20%20%7D%0A%3C%2Fscript%3E%3Cnoscript%3E%3Cp%20id%3Dtest%20class%3DFAIL%3EFAIL%20(noscript)%3C%2Fp%3E%3C%2Fnoscript%3E%0A

0x800000000xFFFFFFFF だと、 & を除く文字列がそのまま文字データとして解釈されます。

0x100000000 以上だと、下位8桁 (32ビット) 以外は無視されます。

[11] >>10 WinIE 6 ではすべて U+003F になるようです。

[12] >>10 Opera 9 は:

U-001100000xFFFFFFFFサロゲート・ペア風のなにか (Firefox とは違います。) になります。

0xFFFFFFFF 以上は 0xFFFFFFFF と同じ結果になります。 (名無しさん)

[13] >>10-12 いずれも文字長の制限はないように見えます。 (名無しさん)

[15] Bug 4948 - Incorrect HTML entity error recovery doesn't match other browsers ( 版) https://bugs.webkit.org/show_bug.cgi?id=4948

[63] MAMA: Character entities - Opera Developer Community ( 版) http://dev.opera.com/articles/view/mama-character-entities/

[64] Business::PayPal::API - PayPal API - search.cpan.org ( 版) http://search.cpan.org/~scottw/Business-PayPal-API-0.62/lib/Business/PayPal/API.pm#PayPal_Munging_URLs

[66] Bug 9207 – Anything else: This part of the spec is problematic, for example, a query string variable &lang_id=1 in as part of an attribute of say an img tag, will get converted into an character token when it shouldn't be. Why is the set of characters a-z, A-Z, 0- ( 版) http://www.w3.org/Bugs/Public/show_bug.cgi

[67] HTML5 Revision Tracker ( 版) http://html5.org/tools/web-apps-tracker?from=4958&to=4959

[69] IRC logs: freenode / #whatwg / 20100403 ( 版) http://krijnhoetmer.nl/irc-logs/whatwg/20100403#l-73

[70] Bug 10067 – this only lists entities whose replacement text is a single character, for example many of the negated operators, for example ( ( 版)) http://www.w3.org/Bugs/Public/show_bug.cgi?id=10067

[71] IRC logs: freenode / #whatwg / 20100927 ( ( 版)) http://krijnhoetmer.nl/irc-logs/whatwg/20100927

[72] XQuery 1.0: An XML Query Language (Second Edition) ( ( 版)) http://www.w3.org/TR/2010/REC-xquery-20101214/#dt-predefined-entity-reference

[73] XQuery 1.0: An XML Query Language (Second Edition) ( ( 版)) http://www.w3.org/TR/2010/REC-xquery-20101214/#dt-character-reference

[74] IRC logs: freenode / #whatwg / 20120525 ( ( 版)) http://krijnhoetmer.nl/irc-logs/whatwg/20120525#l-480

[75] Web Applications 1.0 r7133 Add a JSON file for entities for convenience. ( ( 版)) http://html5.org/tools/web-apps-tracker?from=7132&to=7133

[78] Additional named entities for HTML ( ( 版)) http://www.w3.org/TR/WD-entities-961125

[79] Web Applications 1.0 r7679 Make <a href='?guitar=2&amp=1&pedal=6'> a parse error since IE9 misparses it '?guitar=2&=1&pedal=6' apparently. ( ( 版)) http://html5.org/tools/web-apps-tracker?from=7678&to=7679

[83] Help:Formatting - MediaWiki ( ( 版)) http://www.mediawiki.org/wiki/Help:Formatting#Inserting_symbols

[88] XQuery 3.0: An XML Query Language ( ( 版)) http://www.w3.org/TR/xquery-30/#dt-character-reference

[84] XML Entity Definitions for Characters (2nd Edition) ( ( 版)) http://www.w3.org/TR/2014/PER-xml-entity-names-20140211/

[104] Bug 13108 – Add &zwsp; as named character reference for zero width space (U+200B) ( ( 版)) https://www.w3.org/Bugs/Public/show_bug.cgi?id=13108

[105] Re: [whatwg] several messages about the HTML syntax ( (fantasai 著, 版)) http://lists.w3.org/Archives/Public/public-whatwg-archive/2014Jul/0132.html

[106] [whatwg] Markup-related feedback ( (Ian Hickson 著, 版)) http://lists.w3.org/Archives/Public/public-whatwg-archive/2014Oct/0239.html

[107] abc:standard:v2.1 [abc wiki] ( ( 版)) http://abcnotation.com/wiki/abc:standard:v2.1#supported_accents_ligatures

[16] XHTMLBasic変換仕様 | Durianマニュアル ( 版) http://durian.symmetric.jp/dev/doc/technical/xhtmlbasic_conversion.html

書式 *****で指定可能な記述 説明

&i-mode_*****; 63647から63919 DoCoMo基本絵文字のShift_JISコード

&i-mode-ex_*****; 63921から63996 DoCoMo拡張絵文字のShift_JISコード

&i-mode_U*****; Unicode DoCoMo用絵文字のUnicode

&YahooKeitai-C_*****; [ページ番号1文字]-[ページ内のコード2文字] SoftBankC型端末用絵文字

&YahooKeitai-P_*****; [ページ番号1文字]-[ページ内のコード2文字] SoftBankP型端末用絵文字

&YahooKeitai_U*****; Unicode SoftBank用絵文字のUnicode

&ezweb-1_*****; アイコン番号またはアイコン名 au cdmaOne300シリーズ、Tu-Ka0Xシリーズ、白黒端末用絵文字

&ezweb-2_*****; アイコン番号またはアイコン名 au cdmaOne400シリーズ、Tu-Ka1Xシリーズ用絵文字

&ezweb-3_*****; アイコン番号またはアイコン名 au cdmaOne1000/3000シリーズ、Tu-Ka2Xシリーズ、Tu-Ka3Xシリーズ用絵文字

&ezweb-4_*****; アイコン番号またはアイコン名 au cdmaOne5000シリーズ、WINシリーズ、Tu-Ka4Xシリーズ、Tu-Ka5Xシリーズ用絵文字

&ezweb_U*****; Unicode au用絵文字のUnicode

[17] XHTMLBasic変換仕様 | Durianマニュアル ( 版) http://durian.symmetric.jp/dev/doc/technical/xhtmlbasic_conversion.html

XHTMLBasicの仕様では規定されていない絵文字および入力モードについては、Durianにより拡張された構文を使用します。構文の詳細については、開発リファレンスを参照してください。

機能 表記方法

絵文字 &i-mode_63647; や &YahooKeitai-C1-21; のようなエンティティ参照

入力モード inputまたはtextarea要素のtext:type属性で、text:type="hiragana"のように指定

[22] 俗に、文字参照のことをエスケープシーケンスと呼ぶことがあります。

[30] RFC 7749 - The "xml2rfc" Version 2 Vocabulary ( 版) https://tools.ietf.org/html/rfc7749#section-4

<!ENTITY nbsp "&#xa0;">

<!ENTITY nbhy "&#x2011;">

<!ENTITY wj "&#x2060;">

[31] entries for 1EEF0 and 1EEF1 to match unicode-math · w3c/xml-entities@891fe64 ( 版) https://github.com/w3c/xml-entities/commit/891fe64c7591a75c8f2ad42f9ff0fb93b5b8ef74

[32] Formalize character reference states ( (RReverser著, )) https://github.com/whatwg/html/commit/6c629ac9e5736cdb824293999673de6a0f5ea06d

[34] Fix wording mistake in parsing a character reference ( (zcorpan著, )) https://github.com/whatwg/html/commit/918a56e5d1e9e86695770bf10c1893dd7bae6946

[35] JIS X 0218文字参照のために制定されたのでしょうか。

[36] XQuery 3.1: An XML Query Language () https://www.w3.org/TR/2017/REC-xquery-31-20170321/#dt-character-reference

[37] Regression fix: deal with ASCII digits before ASCII hex digits (annevk著, ) https://github.com/whatwg/html/commit/f8e75a974ed9185e5b462bc5b2dfb32034bd1145

[38] 文字の制限 () http://www.pcinfo.jpo.go.jp/guide/Content/Rules/MojiSeigen.htm

[39] Editorial: Introduce named character reference state (inikulin著, ) https://github.com/whatwg/html/commit/7d3201282d31c30cdba2583445d3727a94390286

[40] Clarify that 0x0D CR is not allowed in entities (Alcaro著, ) https://github.com/whatwg/html/commit/efcf0af907c13343d898bf47b5ab004ed59724dd

[41] Clarify that 0x0D CR is not allowed in entities by Alcaro · Pull Request #2893 · whatwg/html () https://github.com/whatwg/html/pull/2893

[42] Handle ambiguous ampersands of arbitrary length (inikulin著, ) https://github.com/whatwg/html/commit/ee198945e388bd3298b73fb842fa0175d5b6a0f9

[43] [Parser] Handle ambiguous ampersands of arbitrary length (closes #1257) by inikulin · Pull Request #2731 · whatwg/html () https://github.com/whatwg/html/pull/2731

[44] Regression fix: Lost ampersands in Character Reference State's Anythi… (JonathanO著, ) https://github.com/whatwg/html/commit/8d2875784cd4684fd85f4421a1d173902d0e1760

[45] Fix lost ampersands in Character Reference State's Anything Else case. by JonathanO · Pull Request #2913 · whatwg/html () https://github.com/whatwg/html/pull/2913

[46] XML Character Entities () http://www.oasis-open.org/docbook/specs/wd-docbook-xmlcharent-0.3.html

[49] https://ipsj.ixsq.nii.ac.jp/ej/?action=repository_action_common_download&item_id=100462&item_no=1&attribute_id=1&file_no=1

[50] >>49 外字XML実体参照で記述して、 マーク付き区間によりPUA代替表記か切り替えられる。

[111] HTML要素概説
要素名
&xxx;
日付
説明
文字参照は、 低品質な解説類でしばしば要素やタグとして紹介された。 マーク付け宣言タグとみなすのはまだ理解できるが、 <, > で囲まれない文字参照タグと強弁するのは無理があろうかと思われる。
[58] HTML要素概説
要素名
&xxx;
日付
説明
Compact HTML の tag list にも element として &xxx; が掲載され、 comments として文字実体参照十進数文字参照が示されていた。 >>59 また、 iモード対応HTML, iモード対応XHTML の一覧には要素として &XXX; が掲載されていた。 >>60
出典
注釈
  • 文字参照 (character reference) マーク付けの一種。 & から始まり、何らかの文字を表す。
[55] Takesoft/HTML tag help appendex 1 (, ) https://www2a.biglobe.ne.jp/~takesoft/help/help_a1.html

”&copy”は、番号指定で書くと”&#169”である。日本語では、文字コード表では、 169番目(16進数で0xA9)の位置に小さい半角のカタカナの”ゥ”を割り当てているためこのようになる。 従って、この”&copy”は、用いない方がよい。

[56] Takesoft/HTML tag help appendex 1 (, ) https://www2a.biglobe.ne.jp/~takesoft/help/help_a1.html

”&reg;”は、”&#174;”とおなじである。日本語では、0xAE(10進で174)には、 小さい半角カタカナの”ョ”が割り当てられている。

[57] Takesoft/HTML tag help appendex 1 (, ) https://www2a.biglobe.ne.jp/~takesoft/help/help_a1.html

”&reg;”は、”&#174;”とおなじである。日本語では、0xAE(10進で174)には、 小さい半角カタカナの”ョ”が割り当てられている。

[77] JH中部支社i-mode, https://web.archive.org/web/20060616201336im_/http://www.chubu.c-nexco.co.jp/i/

ドコモSJIS

[80] 117422 - Using Turkish character "I" in edit boxes causes data loss after submitting the form, https://bugzilla.mozilla.org/show_bug.cgi?id=117422

[113] Viet-Std Report 1992 - Bilingual Report, , https://web.archive.org/web/19980121230022/http://www.trichlor.org/vietstd/report/rep92.htm

大文字

       <font size="4">&COPY;</font>
     4.2 QUY ИNH &QUOT;КC п”C-TRONG-NGOƒC&QUOT; (VIQR) ........................... <a href="#page43">43</a>
  6. TÓM TT &AMP; KŠT LU‡N ................................................... <a href="#page49a">49</a>