CharaChecker
フォントの収録文字列以外の文字が使用されているかどうかをチェックするためのツール「CharaChecker」を作成してみました。例えばNotoシリーズなどでは多くの文字が収録されていますが、フリーで配布されているフォントではその半分、または四分の一というものもあります。Notoなど多数も文字が収録されているフォントを使えば解決しますが、たまにはデザインフォントが使用したい!というときに役立つのではないかと思います。
使い方はいたって簡単! プログラムを起動して、使用したいフォントと対象のテキストファイルを指定するだけです。テキストファイル内で使用できない文字があったら結果としてその文字を表示するので後はテキストを検索して他の単語に置き換えるなり、ひらがな、カタカナに変えるだけです。
アーカイブ内のファイル
- CharaChecker.exe(本体。通常はこちらを起動)
- CharaChecker.console.exe(コンソール画面付きの本体)
- INIフォルダ(フォント情報ファイル)
- INI_Makerフォルダ
- font2ini.exe(INI_Makerフォルダ内)
TTF/OTFからフォント情報ファイルを作成するためのツール。 - 最初に読む.txt(このファイル)
使用方法
- CharaChecker.exeを起動
- 小さなウィンドウが表示されますので、Settingから対象のフォントを選択。
※Google Fontといくつか私が選択したフォント情報ファイル(.INI)がすでに用意されています(約200種類) - Targetの横にある「Open」ボタンを使い、対象となるテキストファイルを選択(UTF-8のみ対応)。
- 2で選択したフォント情報ファイルと照らし合わせ Result に結果が表示されます(すべての文字が収録されている場合、「問題ありません」と表示され、足りない文字がある場合、その文字がResultに表示されます。
- (注意)※読み込めるテキストファイルはファイルオープンダイアログでは*.txt、*.json、*.xmlが指定されていますが、*.*に変更すればすべてのファイルが選択できるようになります。当然ですがテキストファイル以外を選択した場合、正常に動作しませんのでご了承ください。
使用不可文字の検索方法
検索にはテキストエディタを使用しますが、1文字ずつコピー&ペーストして検索するのは非効率です。では、どうするのかと言えば、正規表現を利用して検索をします。Merryであれば検索用ダイアログ内に「正規表現を使用する」にチェックを入れ、VSCodeであれば検索窓の右にある一番右にあるボタンをオンにするだけです。次に検索窓に [] と半角で入力します。そしてその間にツールで表示された使用不可文字を貼り付けます。つまり、[使用不可文字] という形になっていると思います。これで検索を開始すると [] の中に含んでいる文字を簡単に見つけることができます。
おまけ(INI_Makerフォルダ内「font2ini.exe」)
こちらのツールはフォント(TTF/OTF)からフォント情報ファイルであるINI ファイルを作成するためのツールです。このツールが置かれているフォルダ内にあるフォントファイルをすべて読み込み処理をします。出来上がったINIファイルをINIフォルダに入れれば認識します。CharaChecker.exeを起動していた場合は再起動してください(TTCやOTCは分解してから利用してください。オンラインで処理してくれるサイトやツールなどが探せばあります)。
※こちらのツールはPythonを使用して作成し、PyInstallerで実行ファイル化しています。そのため、一部アンチウィルスソフトやオンラインのアンチウィルス検索でウィルス判定を食らうことがあります(これはPyInstaller自体の問題です)。プログラム内ので処理はフォントファイルを読み込み、INIファイルを作成することしかしていませんので問題ないと思いますが、気になる方は使用しないでください(ESETではウィルス検知はしていません)。
INIファイルの構造
- [Setting]
セクションを意味するもので必須。 - name=”フォント名など”
コンボボックスに表示する名前。ダブルクオーテーションで囲ってください。font2ini.exeで作成した場合、「フォント名 [収録文字数]」となっています。 - string=”検索対象にする文字”
フォントに収録されている文字一覧をダブルクォーテーションで囲ってください。正規表現で使用できない文字を探しているため、この文字列内は正規表現での
規則に従います。一番いいのは以下の半角文字列を「\\s!-~」と記載することです。!”#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
ほとんどのフォントでこれらの文字は収録されていますが、稀に一部の文字が入っていない場合があります。font2ini.exeでは上記の文字列を一気に置き換えていますが、置き換えができなかった場合、上記の長い一行はそのまま入ります。この場合、正常に動作しないため正規表現に従って適切にエスケープ処理してください。
.^$*+?[]|()\
これらの文字をエスケープ処理してください。プログラムをGodotを使用しているため\\を2つ各文字の前につけます。例えば^であれば\\^とします。また文字列を ” で囲っている関係上、文字列の中に ” が登場する場合は\”と入力してエスケープします。動作がおかしいと思った場合、CharaChecker.console.exeを起動すると読み込みがおかしいINIが表示されます。
注意事項と利用規約
- フォントファイルから文字を抽出する際に一部のフォントは文字が存在しない(空白)になっているものがあります(主にフリーフォント)。完全空白のものは排除していますが、少しでも図形として何か入っている場合、文字として認識しているため排除していません。このツールが出す結果が絶対というわけではありませんので予めご了承ください。
- ツールの使用は自己責任でお願いいたします。
- ツールの再配布は禁止します。
ダウンロードされた方は利用規約に同意したものといたします。
3.147.63.208/United States, Ohio, Dublin