文字列が康煕部首に自動変換される件(コンピュータ)
文字列が康煕部首に自動変換される件(コンピュータ)
コンピュータの話です。
表題の件について、調べて納得するまで時間がかかったので、備忘録として残しておきます。
2020年夏、東大阪市第3次総合計画のPDFファイル内の文字に異常があるのを見つけた。
このPDFファイルの66ページのタイトル「高齢者の活躍と地域における支えあいの推進」の文字列を、Windowsのアクセサリ「メモ帳」にコピー&ペーストすると、「高」と「支」の文字が小さくなる。下図参照。
普通に入力した文字との比較をしてみたのが、次の図である。
バイナリエディタ FavBinEdit
このメモ帳のファイルを、バイナリエディタ FavBinEdit で表示させたのが次の図である。
(参考)FavBinEdit の入手
FavBinEdit による表示で次のことが分かる。
UTF-8の文字であり、1文字3バイトで構成される。値は次のとおりであった。
小さい「高」の文字:0xE2BEBC大きい「高」の文字:0xE9AB98小さい「支」の文字:0xE2BD80大きい「支」の文字:0xE694AF
文字コードの見分け方
FanBinEditのメニューコマンド>設定>文字エンコード>UTF-8に設定すると、漢字が正当に視認できる(下図参照)。この例では、「長」と「民」である。このことから、この文字コードはUTF-8であると言える。
SJISに設定すると正当な漢字を視認できない(下図参照)。漢字の部分が、見たことの無い文字になっている。ゆえに、SJISでは無いと言える。
Unicode対応 文字コード表
Unicode対応 文字コード表によると、下記のとおり、大きい高及び支の文字は、JIS第一水準漢字に含まれることが分かった。小さい文字はヒットしない。
区 点 JIS SJIS EUC UTF-8 UTF-16 字
25 66 3962 8D82 B9E2 E9AB98 9AD8 高27 57 3B59 8E78 BBD9 E694AF 652F 支
Unicode文字ツールの「1文字入力して調べる」で小さい文字を入力してみる。
すると、[Unicode文字番号]として、次の事柄が分かる。
小さい高:U+2FBC
小さい支:U+2F40
The Unicode ConsortiumのUnicode 13.0 Character Code Chartsに"Find chart by hex code"という検索窓がある。その窓に、2FBC又は2F40を入力し検索する。
すると、次のPDFファイルが案内される。
2FBC及び2F40の箇所には、小さい高及び小さい支が記されている。
このPDFファイル内には、次のタイトルが記されている。
Kangxi Radicals Range: 2F00–2FDF
Kangxi Radicalsとは、康煕部首(こうきぶしゅ、英語: Kangxi Radicals)である。
部首(ぶしゅ、英語: Radical)とは、漢字を分類する際に用いられる漢字の一部分である。
・康煕部首文字が含まれてしまっている仕掛けについては、次のサイトに解答が載っている。
このサイトに興味深いことが、いろいろ書かれてあるので読んでみれば良い。
「フォントに「メイリオ」を指定してMicrosoft Print to PDF を使って PDF に変換すると再現できる」とのことだ。
・再現性については、次の記事のMurakamiShinyuさんの発言が詳しい。
・この問題については、10年以上前から問題になっていたようである。
ということは、Adobe側には改修する意思が無いということだね。
康煕部首文字がWordにおいて悪影響を与える記事は次のとおりです。
本記事を基に作成したWordのmacroは次のページにあります。
解決への糸口
プリンターを「Adobe PDF」にして印刷(PDFファイルに出力)すると、本問題が発生するという報告がありました。私は「Adobe PDF」を購入・導入していないため、再現はできません。
私の環境はWindows10 + Wordですが、プリンターを「Microsoft Print to PDF」にして印刷(PDFファイルに出力)すると、問題は発生しません。
社会問題の観点からは次の記事があります。
あなたは、「人権尊重のあり方に目標値を定める」って考え方に納得できますか?
是非、お読み頂きたいです!
以上