エニイのブログ

JISコードと地名漢字(住所雑学シリーズ4)

2018年8月30日 データマネジメント

前回の幽霊文字のお話の際にJIS漢字コードについて少し触れましたが、元々コンピュータで文字を利用する場面で重要だったのが人名と地名でしたので、地名の漢字はかなりカバーされてはいます。
地名に関しては最初「国土行政区画総覧」を参考にしていたそうですが、当然全てがカバーされている訳ではありません。
文字コードについては色々紆余曲折を経て、現在はユニコードを利用すれば大体はカバーできるようになりましたが、JIS1・2水準以外の文字が含まれるデータを何の説明もなしにどこにでも送付していいほど標準化されていないのが現状です。
私は専門家ではありませんので、ここでそれら全ての詳細をご説明できる知見はありませんし、物量的にも無理があります。そこで今回は郵便番号データを例に地名の文字コードについてご紹介してみたいと思います。

前々回のブログで郵便番号データのサイトの仕様をご紹介しましたが、その注2に「文字セットとして、JIS X0208-1983を使用し、規定されていない文字はひらがなで表記しています」とあります。これはJIS規格の第1水準(2965字)、第2水準(3390字)に無い漢字はひらがなに置き換える、ということを意味します。
最近のアプリケーション(WordやEXCELなど)ですと、ユニコード文字も表示・保存できますが、テキストファイル(Shift_JIS)でそのまま保存するとユニコード文字は(「?」や「??」に)潰れてしまいますし、多くの方が利用しているWindows端末では通用してしまう機種依存文字(外字なのですが区別がつきにくい)も他の環境に持っていった際、特に独自に外字領域を確保してしまっている場合にどうなってしまうかは保証の限りではありません。
そこで汎用性の高いデータの提供としては、テキストファイル(Shift_JIS)にJIS X0208の第1・2水準内の文字で統一させるのが最も安全、ということになります。
ユニコードが普及する前から我々は宛名のデータというものを広く利用していますので、当該地域にお住まいのかたがたは代用字やひらがなに置き換えられた宛名で手紙が届くことには案外慣れているようです。
こうした例は28レコード、22字種あります。

郵便番号 郵便番号データ表記 漢字 Unicode Shift_JIS
043-0066 北海道檜山郡江差町とど川町 U+6935
039-2507 青森県上北郡七戸町えぞ U+72BE FB5C(外)
039-2852 青森県上北郡七戸町さそう U+54D8 9A45
039-2853 青森県上北郡七戸町さそう U+54D8 9A45
039-2652 青森県上北郡東北町ほとけ 𠏹 U+203F9
021-0814 岩手県一関市北ほうりょう U+973B FBEE(外)
021-0813 岩手県一関市南ほうりょう U+9733 FBED(外)
981-2156 宮城県伊具郡丸森町うるし U+3BC3
997-0303 山形県鶴岡市たらのき 𣗄 U+235C4
995-0005 山形県村山市たも U+6AE4 FAF3(外)
963-5114 福島県東白川郡矢祭町大ぬかり U+57AC FA98(外)
371-0817 群馬県前橋市ぬで島町 U+6A73 FAF0(外)
947-0003 新潟県小千谷市 U+85AD
959-0301 新潟県西蒲原郡弥彦村えび U+9B75 FC41(外)
410-0893 静岡県沼津市くまだか U+9D70 FC47(外)
446-0003 愛知県安城市柿さき 𥔎 U+2550E
621-0031~37 京都府亀岡市ひえ田野町~ U+85AD
571-0037 大阪府門真市ひえ U+85AD
638-0011 奈良県吉野郡下市町 U+4F03 FA6C(外)
680-0728 鳥取県八頭郡若桜町つく 𣇃 U+231C3
703-8248 岡山県岡山市中区さい U+7A5D
703-8247 岡山県岡山市中区さい東町 U+7A5D
714-0061 岡山県笠岡市大 U+519D FA81(外)
756-0080 山口県山陽小野田市くし U+63E5
780-0071 高知県高知市高そね U+57C7 FA9A(外)
783-0004 高知県南国市大そね U+57C7 FA9A(外)
783-0005 高知県南国市大そね U+57C7 FA9A(外)
849-3132 佐賀県唐津市厳木町うつぼ U+7B9E FB88(外)

これらの中で最も影響が大きいのは「」でしょうか。三市(小千谷市・亀岡市・門真市)で使われていてしかも亀岡市の場合は更に7レコード(郵便番号)に展開するのを一つにまとめていますので、対象地域の人口はそれなりになります。意味は「稗」(ひえ)と同じ草冠を付けた国字で、「薭田親王」(奈良時代の皇族)や「薭田神社」(東京都大田区蒲田)などでも使われており、JIS規格では第3水準に採用されています。

影響が大きくかつ難読といえば岡山市の「」があげられます。地元の豪族穝所(さいしょ)氏からとられたといわれる地名で、元々はJIS第2水準に取り上げられるはずだったのが、誤って木偏の「」が登録されてしまい、第3水準でようやく採用されるという憂き目に遭ってしまった字です。結果、木偏の「樶」は「穝」の代用字と使われる以外に殆ど使いみちのないJIS第2水準の文字となってしまっています。前回お話した幽霊文字のようにこの手のミスがJIS(1・2水準)漢字にはちょくちょくあります。

ところで、先ほど「第3水準」という言葉を繰り返し使いましたが、JIS X0213-1997という規格から第3水準(1908字)、第4水準(2436字)の漢字が追加されています。ただし、これら足して4344の文字がそのままShift_JIS内に組み込まれている訳ではないので、テキストファイルで提供される郵便番号データにこれらの漢字が使われることはありません。

3・4水準の漢字の表示についてはもうひとつややこしい問題があって、上記表の「Shift_JIS」コード項目の殆どに「(外)」がついているものがありますね。これはマイクロソフトが独自に拡張した機種依存文字(すなわち外字)でして、Windows環境のIMEで変換候補に上がってきてしまったりするので、気づかないうちに入力してしまったりしています。わかりやすいところでは人名等でよく使う「髙」(はしごだか)などがあります。
このマイクロソフトソフト環境の機種依存文字(Microsoftコードページ932)は元々はNEC特殊文字、IBM拡張文字などを取り入れたもので、漢字については主にJIS1・2水準にない人名・地名で使われるものが入っています。またNEC・IBMでそれぞれ割り当てられた別々のコードが引き継がれており、重複する同じ文字については二つの文字コードが存在しています。漢字については第3・4水準のものと部分的に重なっていますが、前述のとおり主に人名・地名頻出漢字を搭載しただけで関連性はありません。
因みによく使われる機種依存文字「髙﨑」(「はしごだか」と「たちざき」)ですが、「﨑」(たちざき)はJIS第3水準にありますが、「髙」(はしごだか)はJIS規格には登録されていない文字です。ややこしいですね。

上記表の中で最も因縁深い機種依存文字は「」でしょうか。これは「穝」や「𡚴」と同様、元は第2水準の地名漢字として採用予定であったものが誤写されてしまい(と推定される)、「椦」という典拠不明な幽霊文字になってしまったもので、「橳」は正しい字体なのに機種依存文字なので敬遠され、「椦」の方も幽霊文字だけあって字体的にも遠いため代用字としてもあまり活用されない状況で今に至っています。

小字レベルの地名では更に数百のJIS1・2水準外の字があり、文字コードの問題は深入りすると戻ってこられなくなるほどの複雑さがあります。郵便番号データがひらがなで対応しているのは、ある意味賢明な対応であると思われます。

最後に実は個人的に疑問がありまして、「」はJIS第2水準の普通にJIS X0208規格内の文字でして、なぜこれにひらがなが当てられているのか不勉強ながら分からないでおります(単に難読だからか?)。もしどなたかご存知の方がいらっしゃいましたらご教示いただけますと幸いです。