文字列がCJK Radicals Supplementに自動変換される件

文字列がCJK Radicals Supplementに自動変換される件


前回の話(文字列が康煕部首に自動変換される件(コンピュータ))では、康煕部首文字だけの話であった。

しかし、自動変換されるのは、康煕部首文字だけではないようだ。


経緯

私は、康煕部首文字を正当な漢字に変換するプログラムを作成・実行したのだが、変換されない文字があることを見つけた。

下図のとおり「長」と「民」の文字は、適正に元の文字に変換されず、小さな文字になったままだ。
「長」と「民」の文字

「長」の文字は康煕部首文字にもあるにも関わらず、拙作変換プログラムで検知できなかったのだ。

該当箇所だけに編集し、正常な文字と比較してみる(下図参照)。

正常な文字と比較

いつものように、FavBinEditで文字のコードを確認する。

FavBinEditで文字のコードを確認

(参考)FavBinEdit の入手

FavBinEdit による表示で次のことが分かる。
UTF-8の文字であり、1文字3バイトで構成される。値は次のとおりであった。
小さい「長」の文字:0xE2BB91
大きい「長」の文字:0xE995B7
小さい「民」の文字:0xE2BAA0
大きい「民」の文字:0xE6B091

Unicode対応 文字コード表によると、下記のとおり、大きい長及び民の文字は、JIS第一水準漢字に含まれることが分かった。小さい文字はヒットしない。
http://ash.jp/code/unitbl21.htm

区 点 JIS  SJIS EUC  UTF-8  UTF-16 字
36 25 4439 92B7 C4B9 E995B7 9577   長
44 17 4C31 96AF CCB1 E6B091 6C11   民

Unicode文字ツールの「1文字入力して調べる」で小さい文字を入力してみる。
https://www.marbacka.net/msearch/tool.php
すると、[Unicode文字番号]として、次の事柄が分かる。
小さい長:U+2ED1
小さい民:U+2EA0

The Unicode ConsortiumのUnicode 13.0 Character Code Chartsに"Find chart by hex code"という検索窓がある。その窓に、2ED1又は2EA0を入力し検索する。
https://www.unicode.org/charts/
すると、次のPDFファイルが案内される。
https://www.unicode.org/charts/PDF/U2E80.pdf

CJK Radicals Supplement Range: 2E80–2EFF

2ED1及び2EA0の箇所には、小さい長及び小さい民が記されている。

このPDFファイル内には、次のタイトルが記されている。

CJK Radicals Supplement Range: 2E80–2EFF


何故このようなテーブルを設けたのか?
For the characters in this block whose representative glyph takes up only a portion of the em-box, the placement relative to the em-box is either centered or respects prototypical usage. The placement of the representative glyph is for informational purposes only, and should not be considered a  recommendation for implementations.
漢字を構成する部首としてこんなものもあるよということで、情報提供のために作成したのであって、実際の文章で使うことを推奨するものではない、という趣旨(意訳)です。

(引用)CJKとは、中国語と日本語、および韓国語をまとめた言い方のことである。
https://www.sophia-it.com/content/CJK
https://en.wiktionary.org/wiki/CJK

元の漢字のコードは、このPDFファイル内に記されている。つまり、このCJKコードと元の漢字コードの2か所において同一の漢字を定義しているのである。

このような仕様を作成した経緯のような文書があった
https://www.unicode.org/L2/L2019/19212r-n5069r-radical.pdf

「長」という文字は、康煕部首文字、CJK Radicals Supplement(CJK部首補助)及び通常の漢字の3か所で定義されていることになる。普通に考えて、変だ。

本記事を基に作成したWordのmacroは次のページにあります。