ミャンマー語の文字化け問題~ZawgyiとUnicodeの2大フォントについて~
ある日のこと
ミャンマー支店から連絡があり、PDFで出力したミャンマー語が文字化けしている!とのこと。
日本人の私では判別不能ですが文字化けしてるらしいのです。
詳細を聞くと、前回は別の箇所で文字化けが起こったため、その対応として別のフォントをサーバにインストールしたところ今度は別の箇所が文字化けしたという経緯のようでした。
ビルマ語のフォント、UnicodeとZawgyiについて
Unicodeとは?
コンピュータで使用する文字はUnicodeという国際規格で決められています。
平仮名であれば以下のように「あ」は「U3042」というようにコードが割り振られており、これに基づいて日本語のフォントも作成されています。
明朝体で書いた文章をゴシック体にしても文字化けが起こる事がありません。
これはフォントがUnicodeに準拠しているおかげです。
・・・・が
Unicodeに準拠していない国が、そうミャンマーなのでした。
従来の主流Zawgyi、国際化対応のUnicode
ミャンマーの実情についてはこちらで詳しく書かれており参考にさせていただきました。
https://enjoy-yangon.com/ja/enyanblog/351-change-myanmar-font-zawgyi-to-unicode
ミャンマーは歴史的、政治的な背景からコンピュータ技術の発展から取り残されUnicodeに準拠していないZawgyi(ゾージー)フォントが主流となっていましたが、昨年から国際化に対応しようと国が動き始めUnicodeの使用も徐々に広まっているようです。
ちなみに両者の見た目の違いはこんな感じ。
全然違います・・・
・Zawgyi
・Unicode
ちなみに意味は「世界人権宣言」です
文字化けの原因
ここまで調べたところで文字化けの原因はZwagyiとUnicodeが混在する内容のPDFを出力したために、Unicode対応のフォントではZwagyiで書かれた箇所が文字化けし、Zwagyi対応のフォントではUnicodeで書かれた箇所が文字化けするのだろうと推測しました。
Zwagyi<=>Unicode変換を行いフォントを統一する
ミャンマー語がZwagyiかどうかを判定できるライブラリ「Myanmar-tools」がGoogleから出ていました。
以下のように使用します。
1 2 3 4 5 6 7 8 | $detector = new ZawgyiDetector(); $input1 = 'အျပည္ျပည္ဆိုင္ရာ လူ႔အခြင့္အေရး ေၾကညာစာတမ္း'; $score1 = $detector->getZawgyiProbability($input1); // score is 1.0 (The input is definitely Zawgyi) $input2 = 'ချယ်ရီ'; $score2 = $detector->getZawgyiProbability($input2); // score is 0.0 (The input is definitely Unicode). |
また、ZwagyiをUnicodeしてくれるライブラリ「Rabbit-converter」も利用してUnicodeに統一してしまいます。
1 2 3 | Rabbit::zg2uni("သီဟိုဠ္မွ ဉာဏ္ႀကီးရွင္သည္ အာယုဝဍ္ဎနေဆးၫႊန္းစာကို ဇလြန္ေဈးေဘးဗာဒံပင္ထက္ အဓိ႒ာန္လ်က္ ဂဃနဏဖတ္ခဲ့သည္။"); Rabbit::uni2zg("သီဟိုဠ်မှ ဉာဏ်ကြီးရှင်သည် အာယုဝဍ်ဎနဆေးညွှန်းစာကို ဇလွန်ဈေးဘေးဗာဒံပင်ထက် အဓိဋ္ဌာန်လျက် ဂဃနဏဖတ်ခဲ့ |
PHP7以上でないとComposer installできないのでご注意ください。
また、ライブラリではないですがテストに使用して便利だったWeb上の変換サービスがこちら。
https://www.mcf.org.mm/myanmar-unicode-converter/
以上を実行し、PDFに出力される文字をUnicodeに統一しUnicode版のミャンマー語フォントをサーバにインストールすると文字化けを解消することが出来ると考えています。
検証結果は追って記入します!
さいごに
今までi18n対応と言っても英語くらいしかやってこなかった私としては、ミャンマー語の特殊性に驚きました。
日本もShift-JIS とUTF-8などで文字化けするのは似たような経緯を辿ったのかな〜などと考えながら、大変興味深いバグフィックスとなりました。
ちなみにブラウザの文字化け対応については弊社社長のブログが参考になりますよ!
https://sterfield.co.jp/blog/global/%E3%80%90%E3%83%9F%E3%83%A3%E3%83%B3%E3%83%9E%E3%83%BC%E8%AA%9E%E3%80%91mac%E3%81%A7%E3%81%AE%E6%96%87%E5%AD%97%E5%8C%96%E8%A7%A3%E6%B6%88%E6%96%B9%E6%B3%95/
Author Profile
スターフィールド編集部
SHARE