hishidaの開発blog

EBシリーズ(EBPocket,EBWin,EBMac,EBStudio),KWIC Finder,xdoc2txt,読書尚友の開発者ブログ

EBPocket for iOS の中華フォント現象

「iOS10から、EBPocket for iOSの本文の日本語部分のフォントが中国語の繁体字になっている」というご指摘があった。iPad mini2で確認すると、英語フォントを指定した場合、確かに中国語の字形になっている。フォントの初期値をヒラギノではなく英語フォントのTimesNewRomanPSMTにしているのは、英和辞典などで文字のバランスがよいためだが、以前は日本語部分はヒラギノで表示されていた記憶がある。

調べてみると、最近のiOSでは中華フォント現象というのがあるらしい。
iOS で日本語文章に発生する中華フォント現象とは
ただこのページで書いてある解決方法はSwiftの話で、EBPocketではObjective-CでUIWebViewを使用して本文を表示しているので、そのまま適用できない。
いろいろ試したところ、次のように、UIWebViewに表示するhtmlにlang="ja"をつければいいということがわかった。これでめでたく日本語部分がヒラギノで表示されるようになった。

<!DOCTYPE html>
<html lang='ja'>

言語の指定がないと標準で英語(lang='en')になり、iOSのフォントの優先順位で中国語が日本語より先にあるために、フォールバックで中国語フォントが選ばれるらしい。
とりあえず中華フォント現象のみ対応したバージョンをAppStoreに提出した。iOSのバージョンが上がってから初めての提出なので、審査が通るかどうかちょっと不安。
やっぱりiOSのバージョンが上がると必ず何かしら問題が起きるなぁ。

P.S.
AppStoreの審査は1日で通過し、本日リリースされた。最近は審査がスピードアップされているらしい。