encoding

実体符号化指定 (SGML)

実体符号化指定属性形式 (SGML 公式システム識別子)

[1] SGML 公式システム識別子実体符号化指定 (entity encoding specification) (encoding) 属性形式属性は、 実体で使用されている符号化を指定します。

[2] 仕様書:

[3]

参照具象構文名
encoding
完全名
実体符号化指定 (entity encoding specification)
属性
属性名
完全名参照具象構文名
実体符号化指定 (entity encoding specification) encoding
ビット組合せ変形形式 (bit combination fransformation format) bctf

[7] 実体蓄積される時に文字内部表現から蓄積庫におけるオクテット列に変換されますが、 内部表現はシステム依存なので、その変換を直接指定するのではなく、 文字からオクテット列への写像を属性で指定します。 蓄積庫管理器はこの指定と内部表現をもとに実際の変換方法を決定します。 ISO/IEC 10744:1997 A.6.5.2

[8] 符号化方式を指定する方法は2種類あります。

  1. 文書文字集合によって決まる、文字から固定長ビット組合せへの写像
  2. 固定長ビット組合せから bctf によって指定されたオクテット列への写像

実体を読む時には逆変換を行います。

[9] 蓄積庫物体オクテットが実際には包含子実体の文字であるような包含子である場合には、 属性は通常包含子か包含される物体のいずれかにのみ指定し、 両方には指定しません。 ISO/IEC 10744:1997 NOTE 510

実体符号化指定属性形式実体符号化指定属性 (SGML 公式システム識別子)

[5] SGML 公式システム識別子実体符号化指定 (entity encoding specification) (encoding) 属性形式実体符号化指定 (entity encoding specification) (encoding) 属性は、 実体で使用されている符号化方式を指定します。

[4] 仕様書:

[6]

属性形式
実体符号化指定 (entity encoding specification) (encoding)
参照具象構文名
encoding
完全名
実体符号化指定 (entity encoding specification)
属性値
NAME (符号化方式を表す登録値記法名)
既定値
(ビット組合せ変形形式 (bctf) 属性も省略された時) same

[10] ビット組合せ変形形式 (bctf) 属性実体符号化指定 (encoding) 属性は、高々1つのみ指定できます。 ISO/IEC 10744:1997 A.6.5.2

[11] この属性は SGML文実体, CDATA実体SDATA実体にのみ指定できます。 ISO/IEC 10744:1997 A.6.5.2

[12] ISO/IEC 10744:1997 で定義されている符号化方式:

参照具象構文名公式公開識別子説明
UCS-2ISO/IEC 10744:1997//NOTATION FSIDR ENCODING UCS-2 Encoding//ENISO/IEC 10644 UCS 2オクテット BMP 形 (UCS-2)
UCS-4ISO/IEC 10744:1997//NOTATION FSIDR ENCODING UCS-4 Encoding//EN"ISO/IEC 10644 UCS 4オクテット正準系 (UCS-4)
UTF-8ISO/IEC 10744:1997//NOTATION FSIDR ENCODING UTF-8 Encoding//ENISO/IEC 10644‐1:1993 + 追補の附属書 P の UCS 変形形式 8 (UTF-8)
UTF-16ISO/IEC 10744:1997//NOTATION FSIDR ENCODING UTF-16 Encoding//ENISO/IEC 10644‐1:1993 追補の附属書 Q の UCS 変形形式 16 (UTF-16)
UTF-7ISO/IEC 10744:1997//NOTATION FSIDR ENCODING UTF-7 Encoding//ENRFC 1642 UCS 変形形式 7 (UTF-7)
UNICODEISO/IEC 10744:1997//NOTATION FSIDR ENCODING UNICODE Encoding//ENISO/IEC 10646 BMP の2オクテット表現で、 BOM が使用可能 (なければシステムのバイト順)
EUC-JPISO/IEC 10744:1997//NOTATION FSIDR ENCODING EUC-JP Encoding//ENIANA 登録 charset EUC-JP
SJISISO/IEC 10744:1997//NOTATION FSIDR ENCODING SJIS Encoding//ENIANA 登録 charset Shift_JIS
IS8859-1ISO/IEC 10744:1997//NOTATION FSIDR ENCODING ISO8859-1 Encoding//ENISO/IEC 8859‐1 (1オクテット)
IS8859-2ISO/IEC 10744:1997//NOTATION FSIDR ENCODING ISO8859-2 Encoding//ENISO/IEC 8859‐2 (1オクテット)
IS8859-3ISO/IEC 10744:1997//NOTATION FSIDR ENCODING ISO8859-3 Encoding//ENISO/IEC 8859‐3 (1オクテット)
IS8859-4ISO/IEC 10744:1997//NOTATION FSIDR ENCODING ISO8859-4 Encoding//ENISO/IEC 8859‐4 (1オクテット)
IS8859-5ISO/IEC 10744:1997//NOTATION FSIDR ENCODING ISO8859-5 Encoding//ENISO/IEC 8859‐5 (1オクテット)
IS8859-6ISO/IEC 10744:1997//NOTATION FSIDR ENCODING ISO8859-6 Encoding//ENISO/IEC 8859‐6 (1オクテット)
IS8859-7ISO/IEC 10744:1997//NOTATION FSIDR ENCODING ISO8859-7 Encoding//ENISO/IEC 8859‐7 (1オクテット)
IS8859-8ISO/IEC 10744:1997//NOTATION FSIDR ENCODING ISO8859-8 Encoding//ENISO/IEC 8859‐8 (1オクテット)
IS8859-9ISO/IEC 10744:1997//NOTATION FSIDR ENCODING ISO8859-9 Encoding//ENISO/IEC 8859‐9 (1オクテット)
sameISO/IEC 10744:1997//NOTATION FSIDR ENCODING No change in encoding//ENこの蓄積域物体SOS が指定されている蓄積域物体の符号化と同じ

(いずれも実装は必須ではありません。)

[13] UCS-2UCS-4UNICODE は ISO/IEC 10646 の版を指定していませんが、 UTF-8UTF-16(規定する附属書が追補で追加されたものだったせいでしょうが) 版が指定されています。

UNICODEUnicode規格ではなく ISO/IEC 10646 を参照しています (実質的には同じですけどね)

UCS-2UCS-4UTF-8UTF-16 はバイト順や BOM に関する規定が 10744 にはありません。 UCS-2UCS-4 は 10646 の規定的には大エンディアンと思われます。 特に規定がないのでいずれも大エンディアン、 BOM はいずれもなしを 10744 は想定していたのではないかと推測しますが、 10644 には後から BOM はあってもなくてもよい という感じの附属書が追加されていたりします。 (その辺りの規格制定の順序はどうでしたっけ?)

IS8859-N も版の指定がありません。

EUC-JPSJISインターネットの登録を参照しています。 本稿の執筆の時点では EUC-JP は IANA の登録簿で簡単に定義され、 SJIS (Shift_JIS) は JIS X 0208:1997 の附属書1を参照しています。

メモ