文字参照

文字参照 (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 で禁止がなくなってしまっています。 また、正しい文字参照曖昧アンドに含まれないので、文字参照テキストとしても解釈し得る状態になっていて、厳密には不適切な状態になっています。。。

HTML 文字参照 XML DTD

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

歴史

曖昧アンドの縮小

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

メモ

[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 いずれも文字長の制限はないように見えます。 (名無しさん)

[14] XML Entity definitions for Characters (2008-07-21 22:50:47 +09:00 版) <http://www.w3.org/TR/2008/WD-xml-entity-names-20080721/> (名無しさん)

[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>

[65] XML Entity Definitions for Characters ( 版) <http://www.w3.org/TR/2010/PR-xml-entity-names-20100211/>

[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>

[68] XML Entity Definitions for Characters ( 版) <http://www.w3.org/TR/2010/REC-xml-entity-names-20100401/>

[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>

[81] テキスト形式TRONコード

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

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

[86] ncsa-mosaic/CHANGES at master · alandipert/ncsa-mosaic ( ( 版)) <https://github.com/alandipert/ncsa-mosaic/blob/master/CHANGES#L1310>

[87] XML Entity Definitions for Characters (2nd Edition) ( ( 版)) <http://www.w3.org/TR/2014/REC-xml-entity-names-20140410/>

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

[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"のように指定

[19] w3c/xml-entities ( 版) <https://github.com/w3c/xml-entities>

[20] XML Entity Definitions for Characters (3rd Edition) ( 版) <https://w3c.github.io/xml-entities/>

[21] Fix MathML/HTML entity divergence · Issue #42 · whatwg/html-build ( 版) <https://github.com/whatwg/html-build/issues/42>

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

[23] Escape markup characters properly in XHTML DTD · whatwg/html-build@6a775cd ( 版) <https://github.com/whatwg/html-build/commit/6a775cd522cc6a45e877e949288368aa9a6d43d3>

[24] Use entities-legacy.inc as one of sources of the entities table · whatwg/html-build@40aa930 ( 版) <https://github.com/whatwg/html-build/commit/40aa93092ed3fd269569c3e7f81de04163b07d28>

[25] Enable copy-and-pasting of XML DTD identifiers · whatwg/html@870815b ( 版) <https://github.com/whatwg/html/commit/870815b994d70f154c42afee61dee849815955dc>

[26] Fix MathML/HTML entity divergence · Issue #42 · whatwg/html-build ( 版) <https://github.com/whatwg/html-build/issues/42>

[27] Acknowledge XML Entity Definitions for Characters · whatwg/html@189d9a0 ( 版) <https://github.com/whatwg/html/commit/189d9a07c9a006602ecae0deada91db9becb3e97>

[28] no space before combining characters, for html compat · w3c/xml-entities@59df3c0 ( 版) <https://github.com/w3c/xml-entities/commit/59df3c0260780a5beea06d1a8f78d1ba7e22abfc>

[29] Remove entity-related files · whatwg/html@7f99b08 ( 版) <https://github.com/whatwg/html/commit/7f99b089c9f6587e164e65e079be57f4eef3cdad>

[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>