font-specific encodings

フォント依存符号化

目次

  1. フォント依存の符号化機構
    1. Windows symbol encoding
    2. Windows-1252 としての実装
    3. 鍵盤符号化
    4. シフトJISとの混在
  2. 事例
  3. Web での利用
  4. ウィキ構文での事例
  5. メモ

フォント依存の符号化機構#

[1] プロトコル

Windows symbol encoding#

[17] OpenTypeplatformID 3 (Windows) encodingID 0 (Symbol) >>16symbol encoding を表します。

[18] symbol encoding は、 Unicode その他の標準符号化が対応していない任意の装飾や記号 (arbitrary ornaments or symbols) フォントに使います。 >>16

[19] 通常は cmap format 4 部分表で、 符号位置 0xF020 から始まる224個以下図形文字を割り当てて使います。 >>16

[20] symbol encodingUnicode符号化ではないものの、 0xF020 からの領域は PUA に相当するものである >>16、 と説明されています。

[24] つまり [ U+F020, U+F0FF ] の領域です。

[21] 応用によっては遺物的な用法では記号文字 (symbol character) 単一バイト符号化で表し、 0x20フォントOS/2 usFirstCharIndex写像して使っていました。 >>16

[22]OpenType 仕様書symbol encoding の項で説明されているのですが、これが symbol encoding の原初の用法を意味しているのか、 symbol encoding 成立前の慣習を説明しているのか、不明瞭です。

[23] 新しいフォントでは、 Unicode にない記号 (symbol) 文字 (character) Unicode cmap部分表PUA 符号点で符号化するべきです (should) >>16 つまり symbol encoding は使用するべきではないということのようです。

[67] Issue 3766 - chromium - Symbol and Wingdings fonts are not handled properly - An open-source browser project to help move the web forward. - Google Project Hosting ( ( 版)) http://code.google.com/p/chromium/issues/detail?id=3766

Windows-1252 としての実装#

[9] Antenna House によるXSL拡張仕様 (, ) https://www.antenna.co.jp/XML/axf-extension/axf-extension.htm#axf%3Asoft-hyphen-treatment

通常、SOFT HYPHEN (U+00AD) は、行分割しなかったときは表示せず、行分割した場合は表示される。しかし、この処理では、絵文字のようなフォントを使用した場合、U+00AD に割り当てられているグリフが印字されない場合が発生してしまう。axf:soft-hyphen-treatment プロパティを使用することで、この問題を回避することができる。

鍵盤符号化#

ジョージアの8ビット符号

シフトJISとの混在#

Symbolフォント

事例#

[2] フォント

[36] GitHub - MichinariNukazawa/RuneAssignMN_Series_Fonts, https://github.com/MichinariNukazawa/RuneAssignMN_Series_Fonts/

本フォントは、A〜zを入力するだけで手軽にルーン文字が使えるよう作成されました。 ルーン文字に割り当てられているユニコード領域にはグリフを置いていません。

[28] Japanese Windows and hangul, , https://ha1.seikyou.ne.jp/home/akairingosaita/hangul/hangul02.htm

"Yamada Language Center"で配布されている"Sorawin.ttf"は、 なんと1byte文字のフォントです。 初声、中声、終声を重ね打ちしてハングルを表示します。 欧文フォントの裏フォント(外字フォント)形式であり、 通常のハングルフォントとの互換性はありません。

[35] フォント (, ) http://www.yamadera.info/fonts/fonts-index.htm

Web での利用#

[42] 記述方法としては、

[49] 文字コードとしては、

[53] 文字コード指定としては、

[68] <FONT FACE> réputé nuisible, , https://web.archive.org/web/19990221105800/http://babel.alis.com:8080/web_ml/html/fontface.html

[69] >>67 <font face> は有害、ちゃんとした文字を使えと。最初に例示されているギリシャ文字なら確かにそう。 でも Unicode ですらまともに扱えなかった文字をこの時代に他にどうしろと? (なお平成11年は Unicode はかなり頑張ればアルファベット等は実用になるかな、くらいの時期。)

[6] 1054817 – Icon fonts don't work when "allow pages to choose their own fonts" is unchecked ( ( 版)) https://bugzilla.mozilla.org/show_bug.cgi?id=1054817

[8] 789788 – Not allowing pages to choose their own fonts breaks with icon fonts ( ( 版)) https://bugzilla.mozilla.org/show_bug.cgi?id=789788

[12] chardetng: A More Compact Character Encoding Detector for the Legacy Web (Henri Sivonen, , ) https://hsivonen.fi/chardetng/#fonts

[70] Making Home Pages in Korean - EHC, , http://www.kmml.net/ehc/hhpage.html#_two

対象となるブラウザやOSを限定するのであれば、<font face=>タグによるフォント指定を利用してハングルフォントと日本語フォントを使い分け、ハングルと日本語の混在したページを作ることも可能です(たとえばWindows NT上のNetscape 3.0x。ただし<meta>タグでcharsetを決め打ちするとうまく行きませんので、外しておかなければなりません)。

ただし、指定されたフォントがなければせっかくの<font face=>の指定内容は無視されます(とくに異機種、異OSや異言語環境に対する配慮は忘れられがちです)し、ブラウザのバージョンやOSの言語仕様によっても見え方が異なります。と、いうわけで、個人的にはあまりお勧めしません。絶対やるなとまでは言いませんが、やるなら各ブラウザ(できればできる限り複数のOS、複数の言語環境)で一通り表示テストを行い、正常に表示できる環境を明記しておきましょう。

[71] まじか! そんなことできたのか! シフトJISEUC-KRが混在していても適切に font で括っておけばそれぞれのフォント + ANSIコードページでレンダリングされたってこと?

ウィキ構文での事例#

神代文字

メモ#