公開日 2026-02-02 更新日 2026-02-06
Debianでフォント名を管理する、fontconfig がインストールされているフォントの日本語名(family名)を報告するときに、本来であればshift_jisでデコードすべきMacintosh用のバイト列をutf_16_beでデコードするので、フォントによっては意味のない文字列になってしまい、フォントの選択が困難になります。
また、Macintosh用の英語でないけれどもencodeIDがRomanのバイト列をutf_16_beでデコードしている可能性があります。
この現象の起こる環境は、Debian13で、fontconfig の version は 2.15.0-2.3 です。fc-list コマンドでフォント名の文字化けをみせてくれます。
ttfファイルのnameテーブルを確認して検証しました。
| 確認した現象 | フォント名と検証記事 (ページ内リンク) |
|---|---|
| shift_jisでデコードすることになっているバイト列をutf_16_beでデコードしていることが確実にわかる。 ただしshift_jisではデコードしていないと断言できないけど。 |
"IPA P明朝" "YOzS90bi" "YOzS" |
| shift_jisでデコードすることになっているバイト列をshift_jisでデコードせずに utf_16_beでデコードしていることが確実になった。 |
"YOzSF90bi" |
| 多分フォント側のミスで、mac,roman,japanese の指定がしてあるバイト列を utf_16_beでデコードしているという例がある。 ただし、 ascii でデコードして失敗するので utf_16_be でデコードしたという可能性もある。 |
"モトヤLマルベリ3等幅" |
| 多分フォント側のミスで、mac,roman,言語不明 の指定になっているバイト列を ascii でなく utf_16_be でデコードしている例がある | "衡山毛筆フォント行書" |
ttfフォントファイル内の記述のミスがあった場合、無視する設計になっているので、文字化けとして現れるのはfontconfig側の問題です。
fonfconfigを使用してフォント名を取得してフォント選択をするソフトウェアは影響を受けます。Libreoffice, GIMP, (The GNOME Projectの)フォント(閲覧ソフト), エディタのフォント選択などです。
文字化けの現象そのものは「フォント名の文字化け-フォント側に問題がないことを確認」を参照してください。
開始位置:name-offsetに別のoffset値も加えてバイト列の先頭の位置。これが同じなら同じバイト列を共用しているということ。
pel:platformID, encodeID, languageID の頭文字で、ここだけの略記。色々な組み合わせが考えられるが、調べた中ではよく出てくる組み合わせは2件を除くと4パターンしかない。例外の2件はどうやら記述ミスと考えられる。このパターンでバイト列がどのようにエンコードされているかを判断する。
| platformID encodeID languageID | pel(略記) | pelから決まるエンコード | 備考 |
|---|---|---|---|
| Macintosh Roman English | mac_en | ascii | |
| Macintosh Japanese Japanese | mac_ja | shift_jis | Debian13のfontconfigではutf_16_beでデコードしてしまうようだ |
| Windows UnicodeBMP English-US | win_en | utf_16_be | |
| Windows UnicodeBMP Japanese | win_jp | utf_16_be | |
| Macintosh Roman Japanese | macromja | ascii | romなのでasciiと判断できるが、バイト列を見るとshift_jis |
| Macintosh Roman 0411 | macrom?? | ascii | romなのでasciiと判断。0411はwinならJapaneseと判断されるがmacだと該当がない |
呼出元:この開始位置のバイト列を指しているpelとnameIDのリスト。複数のところから呼び出す場合がある。
nameID:いろいろな名前が設定できるが、01のfamilyと02のstyleに注目する。
まずlanguageIDがen(英語)のものすべて、つまり、mac_enとwin_enのそれぞれをデコードして同一ならまとめると考える。
次にlanguageIDがja(日本語)のものすべてをそれぞれデコードして、enと同じものは省き、日本語独自のものは同一ならまとめ、異なる場合は併記すると考える。
mac_jaは本来ならshift_jisだが、utf_16_beでデコードしているかもしれないということを考慮する。
utf_16_beはその仕組みから、shift_jisでエンコードされたものも正常にデコードできることが多い。正常にデコードできたかは、得られた文字列をもう一度エンコードして元のバイト列と同一になるかで判断しているのではないか。それなら我々にとって意味不明な文字列でもデコードに成功したと判断されることはあり得る。
family: "IPA P明朝"(s) "IPAPMincho"(s) "䥐䅐䵩湣桯"(s) familylang: "ja"(s) "en"(s) "ja"(s) style: "Regular"(s) stylelang: "en"(s)
/usr/share/fonts/opentype/ipafont-mincho/ipamp.ttf 0x781ea8
| 開始位置 | pel | 呼出元pel | 呼出元nameID | encode | バイト列(デコード前の文字列) | デコード後文字列 | 別デコード |
|---|---|---|---|---|---|---|---|
| 0x782104 | mac_en | mac_en | 01 | ascii | 49 50 41 50 4d 69 6e 63 68 6f | IPAPMincho | |
| 0x782452 | win_en | win_en | 01 | utf16 | 00 49 00 50 00 41 00 50 00 4d 00 69 00 6e 00 63 00 68 00 6f | IPAPMincho | |
| 0x782258 | mac_ja | mac_ja | 01 | shift-jis | 49 50 41 50 4d 69 6e 63 68 6f | IPAPMincho | 䥐䅐䵩湣桯(utf16) |
| 0x7826fa | win_ja | win_ja | 01 | utf16 | 00 49 00 50 00 41 00 20 00 50 66 0e 67 1d | IPA P明朝 |
| 開始位置 | pel | 呼出元pel | 呼出元nameID | encode | バイト列(デコード前の文字列) | デコード後文字列 | 別デコード |
|---|---|---|---|---|---|---|---|
| 0x78210e | mac_en | mac_en | 02 | ascii | 52 65 67 75 6c 61 72 | Regular | |
| 0x782466 | win_en | win_en | 02 | utf16 | 00 52 00 65 00 67 00 75 00 6c 00 61 00 72 | Regular | |
| 0x782262 | mac_ja | mac_ja | 02 | shift-jis | 52 65 67 75 6c 61 72 | Regular | 剥杵污�(utf16) |
| 0x782708 | win_ja | win_ja | 02 | utf16 | 00 52 00 65 00 67 00 75 00 6c 00 61 00 72 | Regular |
より詳しくは「フォント名の文字化けの原因をさぐる」の"IPA P明朝"で困った、または"IPA P明朝"の名前文字列のデコード一覧を参照
family: "IPA明朝"(s) "IPAMincho"(s) familylang: "ja"(s) "en"(s) style: "Regular"(s) stylelang: "en"(s)
/usr/share/fonts/opentype/ipafont-mincho/ipam.ttf 0x78215c
| 開始位置 | pel | 呼出元pel | 呼出元nameID | encode | バイト列(デコード前の文字列) | デコード後文字列 | 別デコード |
|---|---|---|---|---|---|---|---|
| 0x7823b8 | mac_en | mac_en | 01 | ascii | 49 50 41 4d 69 6e 63 68 6f | IPAMincho | |
| 0x7826fe | win_en | win_en | 01 | utf16 | 00 49 00 50 00 41 00 4d 00 69 00 6e 00 63 00 68 00 6f | IPAMincho | |
| 0x782508 | mac_ja | mac_ja | 01 | shift-jis | 49 50 41 4d 69 6e 63 68 6f | IPAMincho | 䥐䅍楮捨�(utf16) |
| 0x78299e | win_ja | win_ja | 01 | utf16 | 00 49 00 50 00 41 66 0e 67 1d | IPA明朝 |
| 開始位置 | pel | 呼出元pel | 呼出元nameID | encode | バイト列(デコード前の文字列) | デコード後文字列 | 別デコード |
|---|---|---|---|---|---|---|---|
| 0x7823c1 | mac_en | mac_en | 02 | ascii | 52 65 67 75 6c 61 72 | Regular | |
| 0x782710 | win_en | win_en | 02 | utf16 | 00 52 00 65 00 67 00 75 00 6c 00 61 00 72 | Regular | |
| 0x782511 | mac_ja | mac_ja | 02 | shift-jis | 52 65 67 75 6c 61 72 | Regular | 剥杵污�(utf16) |
| 0x7829a8 | win_ja | win_ja | 02 | utf16 | 00 52 00 65 00 67 00 75 00 6c 00 61 00 72 | Regular |
より詳しくは「フォント名の文字化けの原因をさぐる」のIPA明朝は名前が2つ、またはIPA明朝の名前文字列のデコード一覧を参照
debianのパッケージに、fonts-motoya-l-maruberi という名前で登録されているもので、解説には、「モトヤ L マルベリ 3 等幅 - 丸ゴシック、"マルベリ" フォント」とあります。
family: "モトヤLマルベリ3等幅"(s) "MotoyaLMaru"(s) "莂荧莄䲃綃讃碃訳鎙閝"(s) familylang: "ja"(s) "en"(s) "ja"(s) style: "Regular"(s) "W3 mono"(s) stylelang: "ja"(s) "en"(s)
/usr/share/fonts/truetype/motoya-l-maruberi/MTLmr3m.ttf 0x2b8dbc
| 開始位置 | pel | 呼出元pel | 呼出元nameID | encode | バイト列(デコード前の文字列) | デコード後文字列 | 別デコード |
|---|---|---|---|---|---|---|---|
| 0x2b8f4a | mac_en | mac_en | 01 | ascii | 4d 6f 74 6f 79 61 4c 4d 61 72 75 | MotoyaLMaru | |
| 0x2b9086 | win_en | win_en | 01 | utf16 | 00 4d 00 6f 00 74 00 6f 00 79 00 61 00 4c 00 4d 00 61 00 72 00 75 | MotoyaLMaru | |
| 0x2b8fd3 | macromja | macromja | 01 | ascii | 83 82 83 67 83 84 4c 83 7d 83 8b 83 78 83 8a 33 93 99 95 9d | ���g��L�}���x��3���� | モトヤLマルベリ3等幅(sjis) 莂荧莄䲃綃讃碃訳鎙閝(utf16) |
| 0x2b9248 | win_ja | win_ja | 01 | utf16 | 30 e2 30 c8 30 e4 00 4c 30 de 30 eb 30 d9 30 ea 00 33 7b 49 5e 45 | モトヤLマルベリ3等幅 |
| 開始位置 | pel | 呼出元pel | 呼出元nameID | encode | バイト列(デコード前の文字列) | デコード後文字列 | 別デコード |
|---|---|---|---|---|---|---|---|
| 0x2b8f55 | mac_en | mac_en | 02 | ascii | 57 33 20 6d 6f 6e 6f | W3 mono | |
| 0x2b909c | win_en | win_en | 02 | utf16 | 00 57 00 33 00 20 00 6d 00 6f 00 6e 00 6f | W3 mono | |
| 0x2b8fe7 | macromja | macromja | 02 | ascii | 52 65 67 75 6c 61 72 | Regular | Regular(sjis) 剥杵污�(utf16) |
| 0x2b925e | win_ja | win_ja | 02 | utf16 | 00 52 00 65 00 67 00 75 00 6c 00 61 00 72 | Regular |
より詳しくは「フォント名の文字化けの原因をさぐる」のモトヤLマルベリ3等幅、またはモトヤLマルベリ3等幅の名前文字列のデコード一覧を参照
family: "衡山毛筆フォント行書"(s) "KouzanBrushFontGyousyo"(s) "䭯畺慮䉲畳框潮瑇祯畳祯"(s) familylang: "ja"(s) "en"(s) style: "Regular"(s) stylelang: "en"(s)
/usr/share/fonts/truetype/kouzan-mouhitsu/kouzan-mouhitsu-gyosho.ttf 0x220
| 開始位置 | pel | 呼出元pel | 呼出元nameID | encode | バイト列(デコード前の文字列) | デコード後文字列 | 別デコード |
|---|---|---|---|---|---|---|---|
| 0xd46 | win_en | win_en | 01 | utf16 | 00 4b 00 6f 00 75 00 7a 00 61 00 6e 00 42 00 72 00 75 00 73 00 68 00 46 00 6f 00 6e 00 74 00 47 00 79 00 6f 00 75 00 73 00 79 00 6f | KouzanBrushFontGyousyo | |
| 0x1d46 | win_ja | win_ja | 01 | utf16 | 88 61 5c 71 6b db 7b 46 30 d5 30 a9 30 f3 30 c8 88 4c 66 f8 | 衡山毛筆フォント行書 | |
| 0x446 | macrom?? | macrom?? | 01 | ascii | 4b 6f 75 7a 61 6e 42 72 75 73 68 46 6f 6e 74 47 79 6f 75 73 79 6f | KouzanBrushFontGyousyo | KouzanBrushFontGyousyo(sjis) 䭯畺慮䉲畳框潮瑇祯畳祯(utf16) |
| 開始位置 | pel | 呼出元pel | 呼出元nameID | encode | バイト列(デコード前の文字列) | デコード後文字列 | 別デコード |
|---|---|---|---|---|---|---|---|
| 0xf46 | win_en | win_en | 02 | utf16 | 00 52 00 65 00 67 00 75 00 6c 00 61 00 72 | Regular | |
| 0x1f46 | win_ja | win_ja | 02 | utf16 | 00 52 00 65 00 67 00 75 00 6c 00 61 00 72 | Regular | |
| 0x546 | macrom?? | macrom?? | 02 | ascii | 52 65 67 75 6c 61 72 | Regular | Regular(sjis) 剥杵污�(utf16) |
より詳しくは「フォント名の文字化けの原因をさぐる」の衡山毛筆フォント行書-YOz以外のも見てみる、または衡山毛筆フォント行書の名前文字列のデコード一覧を参照
family: "衡山毛筆フォント草書"(s) "KouzanBrushFontSousyo"(s) familylang: "ja"(s) "en"(s) style: "Regular"(s) stylelang: "en"(s)
/usr/share/fonts/truetype/kouzan-mouhitsu/KouzanBrushFontSousyo.ttf 0x220
| 開始位置 | pel | 呼出元pel | 呼出元nameID | encode | バイト列(デコード前の文字列) | デコード後文字列 | 別デコード |
|---|---|---|---|---|---|---|---|
| 0xd46 | win_en | win_en | 01 | utf16 | 00 4b 00 6f 00 75 00 7a 00 61 00 6e 00 42 00 72 00 75 00 73 00 68 00 46 00 6f 00 6e 00 74 00 53 00 6f 00 75 00 73 00 79 00 6f | KouzanBrushFontSousyo | |
| 0x1d46 | win_ja | win_ja | 01 | utf16 | 88 61 5c 71 6b db 7b 46 30 d5 30 a9 30 f3 30 c8 83 49 66 f8 | 衡山毛筆フォント草書 | |
| 0x446 | macrom?? | macrom?? | 01 | ascii | 4b 6f 75 7a 61 6e 42 72 75 73 68 46 6f 6e 74 53 6f 75 73 79 6f | KouzanBrushFontSousyo | KouzanBrushFontSousyo(sjis) 䭯畺慮䉲畳框潮瑓潵獹�(utf16) |
| 開始位置 | pel | 呼出元pel | 呼出元nameID | encode | バイト列(デコード前の文字列) | デコード後文字列 | 別デコード |
|---|---|---|---|---|---|---|---|
| 0xf46 | win_en | win_en | 02 | utf16 | 00 52 00 65 00 67 00 75 00 6c 00 61 00 72 | Regular | |
| 0x1f46 | win_ja | win_ja | 02 | utf16 | 00 52 00 65 00 67 00 75 00 6c 00 61 00 72 | Regular | |
| 0x546 | macrom?? | macrom?? | 02 | ascii | 52 65 67 75 6c 61 72 | Regular | Regular(sjis) 剥杵污�(utf16) |
より詳しくは「フォント名の文字化けの原因をさぐる」の衡山毛筆フォント草書はどうか、または衡山毛筆フォント草書の名前文字列のデコード一覧を参照
family: "奏穓㤰扩"(s) "YOzS90bi"(s) familylang: "ja"(s) "en"(s) style: "䉯汤"(s) "Bold"(s) stylelang: "ja"(s) "en"(s)
/usr/share/fonts/truetype/yozvox-yozfont/YOzBS_90i.ttf 0x9ac578
| 開始位置 | pel | 呼出元pel | 呼出元nameID | encode | バイト列(デコード前の文字列) | デコード後文字列 | 別デコード |
|---|---|---|---|---|---|---|---|
| 0x9ac724 | win_en | win_en,win_ja | 01,03,04,06,07 | utf16 | 00 59 00 4f 00 7a 00 53 00 39 00 30 00 62 00 69 | YOzS90bi | |
| 0x9ac751 | mac_en | mac_en,mac_ja | 01,03,04,06,07 | ascii | 59 4f 7a 53 39 30 62 69 | YOzS90bi | |
| 0x9ac724 | win_ja | win_en,win_ja | 01,03,04,06,07 | utf16 | 00 59 00 4f 00 7a 00 53 00 39 00 30 00 62 00 69 | YOzS90bi | |
| 0x9ac751 | mac_ja | mac_en,mac_ja | 01,03,04,06,07 | shift-jis | 59 4f 7a 53 39 30 62 69 | YOzS90bi | 奏穓㤰扩(utf16) |
| 開始位置 | pel | 呼出元pel | 呼出元nameID | encode | バイト列(デコード前の文字列) | デコード後文字列 | 別デコード |
|---|---|---|---|---|---|---|---|
| 0x9ac761 | win_en | win_en,win_ja | 02 | utf16 | 00 42 00 6f 00 6c 00 64 | Bold | |
| 0x9ac771 | mac_en | mac_en,mac_ja | 02 | ascii | 42 6f 6c 64 | Bold | |
| 0x9ac761 | win_ja | win_en,win_ja | 02 | utf16 | 00 42 00 6f 00 6c 00 64 | Bold | |
| 0x9ac771 | mac_ja | mac_en,mac_ja | 02 | shift-jis | 42 6f 6c 64 | Bold | 䉯汤(utf16) |
より詳しくは「フォント名の文字化け-フォント側に問題がないことを確認」のNameRecordの実例を読む、またはpythonでデコードしてみるを参照
family: "YOzS90i"(s) familylang: "en"(s) style: "Regular"(s) stylelang: "en"(s)
/usr/share/fonts/truetype/yozvox-yozfont/YOzRS_90i.ttf 0x98b520
| 開始位置 | pel | 呼出元pel | 呼出元nameID | encode | バイト列(デコード前の文字列) | デコード後文字列 | 別デコード |
|---|---|---|---|---|---|---|---|
| 0x98b6dc | win_en | win_en,win_ja | 01,03,04,06,07 | utf16 | 00 59 00 4f 00 7a 00 53 00 39 00 30 00 69 | YOzS90i | |
| 0x98b71c | mac_en | mac_en,mac_ja | 01,03,04,06,07 | ascii | 59 4f 7a 53 39 30 69 | YOzS90i | |
| 0x98b6dc | win_ja | win_en,win_ja | 01,03,04,06,07 | utf16 | 00 59 00 4f 00 7a 00 53 00 39 00 30 00 69 | YOzS90i | |
| 0x98b71c | mac_ja | mac_en,mac_ja | 01,03,04,06,07 | shift-jis | 59 4f 7a 53 39 30 69 | YOzS90i | 奏穓㤰�(utf16) |
| 開始位置 | pel | 呼出元pel | 呼出元nameID | encode | バイト列(デコード前の文字列) | デコード後文字列 | 別デコード |
|---|---|---|---|---|---|---|---|
| 0x98b6ea | win_en | win_en,win_ja | 02 | utf16 | 00 52 00 65 00 67 00 75 00 6c 00 61 00 72 | Regular | |
| 0x98b715 | mac_en | mac_en,mac_ja | 02 | ascii | 52 65 67 75 6c 61 72 | Regular | |
| 0x98b6ea | win_ja | win_en,win_ja | 02 | utf16 | 00 52 00 65 00 67 00 75 00 6c 00 61 00 72 | Regular | |
| 0x98b715 | mac_ja | mac_en,mac_ja | 02 | shift-jis | 52 65 67 75 6c 61 72 | Regular | 剥杵污�(utf16) |
より詳しくは「フォント名の文字化けの原因をさぐる」のYOzS90iは文字化けしていない、またはYOzS90iフォントの名前文字列のデコード一覧を参照
family: "奏穓"(s) "YOzS"(s) familylang: "ja"(s) "en"(s) style: "Regular"(s) stylelang: "en"(s)
/usr/share/fonts/truetype/yozvox-yozfont/YOzRS_.ttf 0x8c8a34
| 開始位置 | pel | 呼出元pel | 呼出元nameID | encode | バイト列(デコード前の文字列) | デコード後文字列 | 別デコード |
|---|---|---|---|---|---|---|---|
| 0x8c8c13 | win_en | win_en,win_ja | 01,03,04,06,07 | utf16 | 00 59 00 4f 00 7a 00 53 | YOzS | |
| 0x8c8c2a | mac_en | mac_en,mac_ja | 01,03,04,06,07 | ascii | 59 4f 7a 53 | YOzS | |
| 0x8c8c13 | win_ja | win_en,win_ja | 01,03,04,06,07 | utf16 | 00 59 00 4f 00 7a 00 53 | YOzS | |
| 0x8c8c2a | mac_ja | mac_en,mac_ja | 01,03,04,06,07 | shift-jis | 59 4f 7a 53 | YOzS | 奏穓(utf16) |
| 開始位置 | pel | 呼出元pel | 呼出元nameID | encode | バイト列(デコード前の文字列) | デコード後文字列 | 別デコード |
|---|---|---|---|---|---|---|---|
| 0x8c8bf0 | win_en | win_en,win_ja | 02 | utf16 | 00 52 00 65 00 67 00 75 00 6c 00 61 00 72 | Regular | |
| 0x8c8c23 | mac_en | mac_en,mac_ja | 02 | ascii | 52 65 67 75 6c 61 72 | Regular | |
| 0x8c8bf0 | win_ja | win_en,win_ja | 02 | utf16 | 00 52 00 65 00 67 00 75 00 6c 00 61 00 72 | Regular | |
| 0x8c8c23 | mac_ja | mac_en,mac_ja | 02 | shift-jis | 52 65 67 75 6c 61 72 | Regular | 剥杵污�(utf16) |
より詳しくは「フォント名の文字化けの原因をさぐる」のYOzSはフォント名だけ文字化け、またはYOzSフォントの名前文字列のデコード一覧を参照
family: "奏穓䘹ぢ楘"(s) "YOzSF90bi"(s) familylang: "ja"(s) "en"(s) style: "䉯汤"(s) "Bold"(s) stylelang: "ja"(s) "en"(s)
/usr/share/fonts/truetype/yozvox-yozfont/YOzBSF90i.ttf 0x9ac974
| 開始位置 | pel | 呼出元pel | 呼出元nameID | encode | バイト列(デコード前の文字列) | デコード後文字列 | 別デコード |
|---|---|---|---|---|---|---|---|
| 0x9acb20 | win_en | win_en,win_ja | 01,03,04,06,07 | utf16 | 00 59 00 4f 00 7a 00 53 00 46 00 39 00 30 00 62 00 69 | YOzSF90bi | |
| 0x9acb4f | mac_en | mac_en,mac_ja | 01,03,04,06,07 | ascii | 59 4f 7a 53 46 39 30 62 69 | YOzSF90bi | |
| 0x9acb20 | win_ja | win_en,win_ja | 01,03,04,06,07 | utf16 | 00 59 00 4f 00 7a 00 53 00 46 00 39 00 30 00 62 00 69 | YOzSF90bi | |
| 0x9acb4f | mac_ja | mac_en,mac_ja | 01(mac_en), 03,04,06,07 |
shift-jis | 59 4f 7a 53 46 39 30 62 69 | YOzSF90bi | 奏穓䘹ぢ�(utf16) |
| 0x9acb4f | mac_ja | mac_ja | 01(mac_ja) | shift-jis | 59 4f 7a 53 46 39 30 62 69 58 | YOzSF90biX | 奏穓䘹ぢ楘(utf16) |
| 開始位置 | pel | 呼出元pel | 呼出元nameID | encode | バイト列(デコード前の文字列) | デコード後文字列 | 別デコード |
|---|---|---|---|---|---|---|---|
| 0x9acb59 | win_en | win_en,win_ja | 02 | utf16 | 00 42 00 6f 00 6c 00 64 | Bold | |
| 0x9acb71 | mac_en | mac_en,mac_ja | 02 | ascii | 42 6f 6c 64 | Bold | |
| 0x9acb59 | win_ja | win_en,win_ja | 02 | utf16 | 00 42 00 6f 00 6c 00 64 | Bold | |
| 0x9acb71 | mac_ja | mac_en,mac_ja | 02 | shift-jis | 42 6f 6c 64 | Bold | 䉯汤(utf16) |
より詳しくは「フォント名の文字化けの原因をさぐる」のYOzSF90biは奇数バイトなのに、 またはYOzSF90biフォントの名前文字列のデコード一覧を参照
Debian12では、文字化けはこらない。これは前から確認済みだが、fc-listでは、次のように報告される。
family: "YOzSF90bi"(s) familylang: "en"(s) style: "Bold"(s) stylelang: "en"(s)
しかし、nameテーブルの内容は全く同じなので、"奏穓䘹ぢ楘"にならないとしても、YOzSF90biXは日本語名として出てきそうなのに出てきていない。win_jaではenと同じ文字列になり省略になるが、mac_jaではのnameID=10だけ10バイトなのでYOzSF90biXになり、ja独自の文字列となるからだ。
この原因はわからない。ただひとつ推測するとすればnameオフセットテーブルでは同じ開始位置のバイト列を複数のnameIDで使い回されるので、lengthも同じであろうと処理される可能性がある。開始位置が同じでlengthが異なるという指定はあまりないことなので、確認が漏れていたのではないだろうか。
family: "VL Pゴシック"(s) "VL PGothic"(s) familylang: "ja"(s) "en"(s) style: "regular"(s) stylelang: "en"(s)
/usr/share/fonts/truetype/vlgothic/VL-PGothic-Regular.ttf 0x3c6c5c
| 開始位置 | pel | 呼出元pel | 呼出元nameID | encode | バイト列(デコード前の文字列) | デコード後文字列 | 別デコード |
|---|---|---|---|---|---|---|---|
| 0x3c6fd4 | win_en | win_en | 01 | utf16 | 00 56 00 4c 00 20 00 50 00 47 00 6f 00 74 00 68 00 69 00 63 | VL PGothic | |
| 0x3c6fea | mac_en | mac_en | 01 | ascii | 56 4c 20 50 47 6f 74 68 69 63 | VL PGothic | |
| 0x3c7187 | win_ja | win_ja | 01 | utf16 | 00 56 00 4c 00 20 00 50 30 b4 30 b7 30 c3 30 af | VL Pゴシック |
| 開始位置 | pel | 呼出元pel | 呼出元nameID | encode | バイト列(デコード前の文字列) | デコード後文字列 | 別デコード |
|---|---|---|---|---|---|---|---|
| 0x3c6ff5 | win_en | win_en | 02 | utf16 | 00 72 00 65 00 67 00 75 00 6c 00 61 00 72 | regular | |
| 0x3c7005 | mac_en | mac_en | 02 | ascii | 72 65 67 75 6c 61 72 | regular |
より詳しくは「フォント名の文字化けの原因をさぐる」の"VL Pゴシック"はデフォルトの日本語フォント、 または"VL Pゴシック"の名前文字列のデコード一覧を参照
family: "BIZ UDゴシック"(s) "BIZ UDGothic"(s) familylang: "ja"(s) "en"(s) style: "Regular"(s) stylelang: "en"(s)
/usr/share/fonts/truetype/bizud-gothic/BIZUDGothic-Regular.ttf 0x45b910
| 開始位置 | pel | 呼出元pel | 呼出元nameID | encode | バイト列(デコード前の文字列) | デコード後文字列 | 別デコード |
|---|---|---|---|---|---|---|---|
| 0x45bad4 | win_en | win_en | 01,04 | utf16 | 00 42 00 49 00 5a 00 20 00 55 00 44 00 47 00 6f 00 74 00 68 00 69 00 63 | BIZ UDGothic | |
| 0x45bd86 | win_ja | win_ja | 01,04 | utf16 | 00 42 00 49 00 5a 00 20 00 55 00 44 30 b4 30 b7 30 c3 30 af | BIZ UDゴシック |
| 開始位置 | pel | 呼出元pel | 呼出元nameID | encode | バイト列(デコード前の文字列) | デコード後文字列 | 別デコード |
|---|---|---|---|---|---|---|---|
| 0x45baec | win_en | win_en,win_ja | 02 | utf16 | 00 52 00 65 00 67 00 75 00 6c 00 61 00 72 | Regular | |
| 0x45baec | win_ja | win_en,win_ja | 02 | utf16 | 00 52 00 65 00 67 00 75 00 6c 00 61 00 72 | Regular |
より詳しくは「フォント名の文字化けの原因をさぐる」の"BIZ UDゴシック Regular"から先に、 または"BIZ UDゴシック Regular"の名前文字列のデコード一覧を参照
"BIZ UDゴシック"はファミリー名なので、RegularもBoldも同じ名前になる。日本語フォント名では少数派だがttfの仕様を見ると、これが本来の姿なのだそうだ。
nameID=04のfullnameにはRegular,Boldがついて区別される。ttfファイルは別になっている。解釈についてはRegularと同じなので省略。
family: "BIZ UDゴシック"(s) "BIZ UDGothic"(s) familylang: "ja"(s) "en"(s) style: "Bold"(s) stylelang: "en"(s)
/usr/share/fonts/truetype/bizud-gothic/BIZUDGothic-Bold.ttf 0x454690
| 開始位置 | pel | 呼出元pel | 呼出元nameID | encode | バイト列(デコード前の文字列) | デコード後文字列 | 別デコード |
|---|---|---|---|---|---|---|---|
| 0x454854 | win_en | win_en | 01 | utf16 | 00 42 00 49 00 5a 00 20 00 55 00 44 00 47 00 6f 00 74 00 68 00 69 00 63 | BIZ UDGothic | |
| 0x454b26 | win_ja | win_ja | 01 | utf16 | 00 42 00 49 00 5a 00 20 00 55 00 44 30 b4 30 b7 30 c3 30 af | BIZ UDゴシック |
| 開始位置 | pel | 呼出元pel | 呼出元nameID | encode | バイト列(デコード前の文字列) | デコード後文字列 | 別デコード |
|---|---|---|---|---|---|---|---|
| 0x45486c | win_en | win_en,win_ja | 02 | utf16 | 00 42 00 6f 00 6c 00 64 | Bold | |
| 0x45486c | win_ja | win_en,win_ja | 02 | utf16 | 00 42 00 6f 00 6c 00 64 | Bold |
より詳しくは「フォント名の文字化けの原因をさぐる」の"BIZ UDゴシック Bold"、 または"BIZ UDゴシック Bold"の名前文字列のデコード一覧を参照