数値文字参照

数値文字参照( NCR ) は、SGMLおよびHTMLXMLなどの SGML 派生マークアップ言語で使用される一般的なマークアップ構造です。これは、単一の文字を表す短い文字のシーケンスで構成されます。WebSgml 、XML およびHTML 4以降では、 UnicodeのUniversal Character Set (UCS)のコード ポイントが使用されます。 NCR は通常、特定のドキュメントで直接エンコードできない文字を表すために使用されます(たとえば、使用されている 8 ビット文字セットに適合しない国際文字である場合や、言語で特別な構文上の意味がある場合など)。ドキュメントがマークアップ対応リーダーによって解釈される場合、各 NCR は、それが表す文字であるかのように扱われます。

SGML、HTML、XMLでは、ギリシャ語の大文字シグマの有効な数値文字参照は次のとおりです。

U+03A3 Σ ギリシャ大文字シグマの数値文字参照
(3A3 16 = 931 10 )
Unicode文字数値基数マークアップにおける数値参照効果
03A3小数点ΣΣ
03A3小数点ΣΣ
03A316進数ΣΣ
03A316進数ΣΣ
03A316進数ΣΣ

SGML、HTML、XMLでは、以下はすべてラテン大文字AEの有効な数値文字参照です。

U+00C6 Æラテン大文字 AEの数値文字参照
Unicode文字数値基数マークアップにおける数値参照効果
00C6小数点ÆÆ
00C616進数ÆÆ

SGML、HTML、XMLでは、ラテン小文字シャープs ßの有効な数値文字参照は次のとおりです。

U+00DF ßラテン小文字シャープSの数字文字参照
Unicode文字数値基数マークアップにおける数値参照効果
U+00DF小数点ßß
U+00DF16進数ßß

印刷可能なASCII文字の数値文字参照のリスト:

Unicode文字文字
参照
(10進数)
文字
参照
(16進数)
効果
U+0020 (空間)
U+0021!!!
U+0022""
U+0023###
U+0024$$$
U+0025%%%
U+0026&&
U+0027'''
U+0028((
U+0029))
U+002A***
U+002B+++
U+002C,,
U+002D---
U+002E..
U+002F///
U+0030000
U+0031111
U+0032222
U+0033333
U+0034444
U+0035555
U+0036666
U+0037777
U+0038888
U+0039999
U+003A:::
U+003B;;;
U+003C<<<
U+003D==
U+003E>>>
U+003F???
U+0040@@@
U+0041AA
U+0042BBB
U+0043CCC
U+0044DDD
U+0045EEE
U+0046FFF
U+0047GGG
U+0048HHH
U+0049II
U+004AJJJ
U+004BKKK
U+004CLLL
U+004DMMM
U+004ENN
U+004FOO
U+0050PPP
U+0051QQ質問
U+0052RRR
U+0053SSS
U+0054TTT
U+0055UUあなた
U+0056VVV
U+0057WWW
U+0058XXX
U+0059YYはい
U+005AZZZ
U+005B[[[
U+005C\\\
U+005D]]]
U+005E^^^
U+005F___
U+0060``'
U+0061aa1つの
U+0062bbb
U+0063ccc
U+0064ddd
U+0065eee
U+0066fff
U+0067ggグラム
U+0068hhh
U+0069ii
U+006Ajjj
U+006Bkk
U+006Clll
U+006Dmmメートル
U+006Ennn
U+006Fooo
U+0070ppp
U+0071qqq
U+0072rrr
U+0073sss
U+0074ttt
U+0075uuあなた
U+0076vvv
U+0077ww
U+0078xx×
U+0079yyy
U+007Azzz
U+007B{{{
U+007C|||
U+007D}}}
U+007E~~

議論

マークアップ言語は通常、UCSまたはUnicode文字に基づいて定義されます。つまり、文書は、その最も基本的な抽象レベルでは、文字のシーケンスで構成されます。文字のシーケンスは、いかなるエンコーディングにも依存せず存在する抽象的な単位です。

理想的には、マークアップ言語を使用する文書の文字が、ネットワーク上でビットシーケンスとして保存または転送するためにエンコードされる場合、使用されるエンコードは、文書内のすべての文字を、Unicode 全体ではないにしても、特定のビット シーケンスとして直接表現することをサポートするエンコードになります。

しかし、利便性や技術的な制限により、一部の文字を直接表現できないエンコーディングで文書がエンコードされることがあります。例えば、ISO 8859に基づく広く使用されているエンコーディングでは、最大256文字を8ビットバイト1つで表現することしかできません。

実際には、文書が内部的に複数のエンコーディングを使用することはほとんどないため、文書作成者がエンコードできない文字をエンコード可能な文字で表現する手段を提供するのは、通常、マークアップ言語の責任です。これは通常、何らかの「エスケープ」メカニズムによって行われます。

SGMLベースのマークアップ言語では、文書作成者はASCII範囲(Unicodeの最初の128コードポイント)の特別な文字シーケンスを使用して、任意のUnicode文字を表現(参照)することができます。表現対象の文字が文書のエンコードで直接利用可能かどうかは関係ありません。これらの特別なシーケンスは文字参照と呼ばれます。

参照文字のUCSまたはUnicodeコードポイントに基づく文字参照は、数値文字参照と呼ばれます。HTML 4およびすべてのバージョンのXHTMLとXMLでは、コードポイントは10進数(基数10)または16進数(基数16)で表すことができます。構文は次のとおりです。

文字 U+0026 (アンパサンド) の後に文字 U+0023 (番号記号) が続き、その後に次のいずれかの選択肢が続きます。

  • 0 (U+0030) から 9 (U+0039) までの 1 つ以上の 10 進数字、または
  • 文字 U+0078 ("x") に続いて 0 (U+0030) から 9 (U+0039)、ラテン大文字の A (U+0041) から F (U+0046)、ラテン小文字の a (U+0061) から f (U+0066) までの 1 つ以上の 16 進数字が続きます。

すべてU+003B(セミコロン)文字が続きます。古いバージョンのHTMLでは16進数の構文は許可されていませんでした。

数値文字参照を構成する文字は、今日のコンピューティングおよび通信で使用されるすべての文字エンコードで表現できるため、参照自体がエンコードできないというリスクはありません。

文字実体参照と呼ばれる別の種類の文字参照があり、文字を番号ではなく名前で参照できます。(文字に名前を付けると、文字実体が作成されます。) HTML では一部の文字実体が定義されていますが、多くはありません。その他の文字は、直接エンコードするか、NCR を使用することによってのみ含めることができます。

制限

ISO 10646 で定義されたユニバーサル文字セットは、SGML、HTML 4 の「ドキュメント文字セット」であるため、デフォルトでは、このようなドキュメント内のすべての文字、およびこのようなドキュメントで参照されるすべての文字は UCS に含まれている必要があります。

SGML の構文では、 などの無効または未割り当てのコード ポイントへの参照は禁止されていませんが&#xFFFF;、HTML や XML などの SGML 派生のマークアップ言語では、数値文字参照を文字に割り当てられているコード ポイントのみに制限できます (多くの場合、そうしています)。

制限は他の理由でも適用される場合があります。例えば、HTML 4では&#12;、非印刷の「フォームフィード」制御文字への参照である は、フォームフィード文字が許可されているため許可されています。しかし、XMLでは、フォームフィード文字は参照であっても使用できません。[1] [要出典]別の例として&#128;、 は別の制御文字への参照であり、HTMLでもXMLでも使用または参照できませんが、HTMLで使用した場合は通常、Webブラウザによってエラーとしてフラグ付けされません。一部のブラウザでは、互換性上の理由から、これをWindows-1252&#8364;エンコーディングのコード値128で表される文字への参照として解釈します。この文字「€」は、標準に準拠したHTMLコードでは として表現する必要があります。さらに例として、2000年10月6日にXML 1.0第2版が発行される以前のXML 1.0は、ISO 10646の旧バージョンに基づいており、文字データを除きU+FFFDを超える文字の使用が禁止されていたため、&#65536;(U+10000)のような参照は不正でした。XML 1.1以降のXML 1.0では、利用可能な文字レパートリーが明示的に拡張されたため、このような参照は許可されています。

マークアップ言語では、文字参照が発生できる場所にも制限が設けられています。

互換性の問題

SGMLおよびHTMLの初期バージョンでは、数値文字参照はUnicodeではなく、文書の文字エンコーディングとの関係で解釈されていました。ラテン文字の文書では、これらの文書内の x80 から x9F までの文字への数値文字参照はUnicodeでは正しくないため、再コード化する必要があります。HTML 4より前の HTML 標準は、西欧ラテン文字の文書のみをサポートしていました。つまり、#7F を超える文字参照の扱いは、アプリケーションや各国の慣例によって異なる場合があります。

例えば、前述のように、Unicodeを使用する場合、ユーロ記号「€」の正しい数値文字参照は10進数と16進数です。ただし、HTMLの旧式実装をサポートするツールを使用する場合は、( CP-1252コードページ のユーロ記号)または( ISO/IEC 8859-15のユーロ記号)という参照が 機能する場合があります。U+20AC&#8364;&#x20AC;&#128;&#164;

別の例として、テキストが元々 MacRoman文字セットを使用して作成されていた場合、左の二重引用符 "はコード ポイント xD2 で表されます。このコード ポイントは文字Òで占められており、UTF-8、ISO 8859-1、または CP-1252 でエンコードされた文書を想定しているシステムでは、このコード ポイントは正しく表示されません。HTML 4 以降では、 "の正しい数値文字参照はです。これは、 U+ 201C が UCS コードである&#x201C;ためです。一部のシステムでは、名前付き文字参照も使用できる場合があります。 &ldquo;

参照

参考文献

  1. ^ 「HTML 5.2: 8. HTML構文」。www.w3.org
Retrieved from "https://en.wikipedia.org/w/index.php?title=Numeric_character_reference&oldid=1274065495"