知識マップ: 日本語フォントと文字の落とし穴 ── JIS2004・異体字セレクタ・外字を業務アプリでどう扱うか
記事「日本語フォントと文字の落とし穴 ── JIS2004・異体字セレクタ・外字を業務アプリでどう扱うか」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。
文字化けはバイト列の解釈を誤るデータ層の事故、字形の違いはフォントが持つグリフの差である見た目層の事故で、対処もまったく異なります。JIS X 0213:2004では168字の例示字形が印刷標準字体に改められましたが、変わったのは字形だけで符号位置は同じです。字形をデータとして固定したいときの標準的な手段が異体字セレクタで、どの並びがどの字形を指すかはIVDが定め、フォント側はcmapのformat 14で実装します。非対応環境ではセレクタが無視されて基底字形になるのが正しい挙動ですが、IVS付きの1文字はUTF-16で最大4コード単位になるため、文字数の検証や切り出しは書記素単位で行う必要があります。外字は私用領域のコードポイントに字形を割り当てる仕組みで、フォントファイルがそのPCのものである以上、データと一緒に相手へ渡りません。
flowchart LR
accTitle: 日本語フォントと文字の知識マップ
accDescr: 符号位置とグリフを分けて考えること、JIS2004で字形だけが変わった構図、IVSによる字形のデータ指定とIVD・cmap format 14の関係、外字が持ち出せない理由、帳票のフォント埋め込みとfsType・PDF/A、フォールバックが救済装置であることを示す図
codepoint_vs_glyph["符号位置とグリフの分離"]
ivs["異体字セレクタ(IVS)"]
jis2004_glyph_change["JIS2004の例示字形変更"]
opentype_jp90_feature["OpenType jp90フィーチャ"]
ivd_collection["IVD(Ideographic Variation Database)"]
opentype_cmap_format14["OpenTypeのcmap format 14"]
grapheme_cluster_counting["書記素単位での文字数計算"]
eudc_private_use_area["外字(EUDC)と私用領域(PUA)"]
moji_joho_kiban["文字情報基盤(MJ)と戸籍統一文字"]
pdf_a["PDF/A(ISO 19005)"]
font_fstype["フォントのfsType(埋め込みライセンス)"]
font_fallback["フォントリンクとフォールバック"]
compatibility_normalization["互換分解のUnicode正規化(NFKC/NFKD)"]
biz_ud_font["BIZ UDゴシック"]
screen_print_font_consistency["画面と帳票のフォント統一"]
jis2004_glyph_change -->|"原因になり得る"| codepoint_vs_glyph
jis2004_glyph_change -->|"で構成できる"| opentype_jp90_feature
ivs -->|"軽減する"| codepoint_vs_glyph
ivs -->|"前提とする"| ivd_collection
ivs -->|"前提とする"| opentype_cmap_format14
ivs -->|"前提とする"| grapheme_cluster_counting
eudc_private_use_area -->|"原因になり得る"| codepoint_vs_glyph
moji_joho_kiban -.->|"の後継"| eudc_private_use_area
moji_joho_kiban -->|"利用する"| ivd_collection
pdf_a -->|"前提とする"| font_fstype
pdf_a -->|"防止する"| font_fallback
font_fallback -->|"軽減する"| codepoint_vs_glyph
compatibility_normalization -->|"用いるのは非推奨"| moji_joho_kiban
biz_ud_font -.->|"推奨される対応"| screen_print_font_consistency
概念間の関係(全14件)
図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。
- JIS2004の例示字形変更は符号位置とグリフの分離の原因になることがあります。
- JIS2004の例示字形変更はOpenType jp90フィーチャで構成できます。
- 異体字セレクタ(IVS)は符号位置とグリフの分離を軽減します。
- 異体字セレクタ(IVS)はIVD(Ideographic Variation Database)を前提とします。
- 異体字セレクタ(IVS)はOpenTypeのcmap format 14を前提とします。
- 異体字セレクタ(IVS)は書記素単位での文字数計算を前提とします。
- 外字(EUDC)と私用領域(PUA)は符号位置とグリフの分離の原因になることがあります。
- 文字情報基盤(MJ)と戸籍統一文字は外字(EUDC)と私用領域(PUA)の後継に当たります。
- 文字情報基盤(MJ)と戸籍統一文字はIVD(Ideographic Variation Database)を利用します。
- PDF/A(ISO 19005)はフォントのfsType(埋め込みライセンス)を前提とします。
- PDF/A(ISO 19005)はフォントリンクとフォールバックを防ぎます。
- フォントリンクとフォールバックは符号位置とグリフの分離を軽減します。
- 互換分解のUnicode正規化(NFKC/NFKD)を文字情報基盤(MJ)と戸籍統一文字に用いることは推奨されません。
- BIZ UDゴシックは画面と帳票のフォント統一に対する本記事の推奨です。
主要概念の定義
機械可読データ
このデータセットについて
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。