第7章 文字の標準化への準拠
仕様書はテキストで正本化される以上、どの文字集合・符号化で書くかが正本性を左右する。本章は、 本文・payload・添付データで用いる文字の規約を定める。
7.1 符号化は UTF-8
すべてのファイルは **UTF-8(BOM なし)**で保存する。改行は LF に統一する。Shift-JIS・EUC-JP 等の レガシー符号化は用いない(変換時の文字化け・往復不能の原因になる)。
7.2 氏名等は行政事務標準文字に準拠する
住民の氏名・住所等、行政事務で扱う文字は行政事務標準文字に準拠する。約 163 万の自治体外字を、 MJ 文字情報一覧表 約 5.9 万字を基礎に約 7 万字へ整理した文字集合であり、デジタル庁・総務省告示で 定められている。
- 文字集合の正本は別途の文字要件文書(
character-standard/)が持つ。仕様書本文・payload・サンプル値で 外字を用いる場合は、この文字集合の範囲内の文字を使う。 - 文字には文字図形名・UCS・登記統一文字番号等の識別子があり、文字要件文書がその対応表を持つ。 特定の字形を指す必要があるときは、生の異体字を本文に直書きするのではなく、これらの識別子で参照する。
7.3 私用領域(PUA)の文字を生で埋め込まない
行政事務標準文字には Unicode の私用領域(PUA)に割り当てられた文字が含まれる。PUA のコードポイントは フォントが無ければ「豆腐(□)」になり、環境によって異なる字形に化ける。
- 本文・payload に PUA 文字を生で埋め込まない。文字図形名・登記統一文字番号で参照する。
- 文字一覧そのものを表示する場合は、対応するサブセットフォントを
@font-face(unicode-range)で 供給し、ビルド時に用意する(§7.4)。
7.4 巨大な文字データの扱い
文字一覧(約 7 万字)のような巨大データは、本文に表として焼かず、CSV を正本として添付し、 ストリーミング表示(仮想スクロール)で閲覧に供する。
- CSV は文字集合の最小列(文字図形名・文字・UCS・登記統一文字番号・施行等)を持つ。
- 表示する文字図形のフォントは、ビルド時にコードポイント単位でサブセットし、
unicode-rangeで チャンク化する。ブラウザは可視文字のチャンクだけを取得する。 - サブセットフォントは原フォントの派生プログラムであるため、ライセンス(IPA フォントライセンス等)に 従い、フォント名の中立化・出所・連絡先・原本入手先を明示する。
文字一覧 68,282 字は、この方式で SSG に閉じたまま全字表示している。データ正本は CSV、表示はクライアントの 仮想スクロール、字形は
unicode-rangeチャンクのサブセットフォントが担う。