新元号「令和」はシフトJISで表示できない?

本年5月1日に日本の元号が改元され、新元号「令和」が制定されました。
改元の前後にはメディアでこの話題が洪水のように流され、日本中が歓迎ムード一色という感じであったのは記憶に新しいところです。

ただ、新元号の発表が1ヶ月前であったことから、和暦を使うシステムに携わる人たちはこの対応に追われて大変だったのではないでしょうか?
日頃使うWindowsにおいても、マイクロソフトが「令和」対応の更新プログラムを提供開始したのは連休直前の4月26日でした。

さて、パソコン上で元号を表す場合、「昭和」「平成」のように2文字で表す場合と「㍼」「㍻」のように1文字で表す場合があります。
後者を「合字」といいます。
更新プログラムが適用されたWindowsでは、「令和」についても「㋿」という合字が入力可能になります。

以下は、Wordを使って元号の合字を入力しPDFにしたものです。

元号とその合字

このPDFを「瞬簡PDF 変換 10」によりWordに変換してみます。

合字をWordに変換

「令和」の合字は無事変換されます。
同様に、Excelへ変換した場合もみてみます。

合字をExcelに変換

こちらも問題なく変換できます。

「令和」の合字はUnicodeの文字ポイントで U+32FF という場所に割り当てられました。
「瞬簡PDF 変換 10」はPDFの文字をUnicodeベースで扱うため、Unicodeで表現された文字は問題なく変換できます。

ところが、「瞬簡PDF 変換 10」のテキスト抽出機能を使ってこのPDFから文字を抽出し、結果をメモ帳で開くと違った結果になります。

合字を既定値テキスト抽出

「令和」の合字に対応しているはずが、テキスト抽出すると合字部分が変換されません。

実は、「瞬簡PDF 変換 10」のテキスト抽出処理は、変換条件で既定の文字コードを[Windows31J]としています。

Windows31Jは、マイクロソフト社がシフトJISをベースに規定した文字コードで、Windowsの標準日本語コードとなっています。
Windows31Jは、CP932またはMS932とも呼びます。

今回、新元号が制定されるにあたり「令和」の合字はUnicodeに追加されましたが、マイクロソフト社はこれをWindows31Jには追加しないと明言しています。
Windows 用の日本の新元号対応更新プログラムについて – KB4469068
の注に、以下の記載があります。


 Microsoft Windows コード ページ 932 (MS932)、すなわちシフト JIS エンコーディングは、新元号の合字をサポートしません。
Unicode の日本の新元号の合字 (漢字 1 文字) の文字をマルチ バイト文字に変換中に文字が正しく表示されないことがあります。MS932 エンコーディングでその逆を行う変換の場合も同様です。


これにより、「令和」の合字はWindows31Jでは表現できないことになります。

ちなみに、「瞬簡PDF 変換 10」のテキスト抽出処理で文字コードを[UTF-8]または[UTF-16]に指定し実行した場合は、以下のように変換が可能です。

合字をUnicodeでテキスト抽出

Windows上で使われることが多い標準文字コードに新元号の合字を追加しないというこの措置が、元号を扱うアプリに影響を与えないものか心配ではあります。
普段使われているアプリで「令和」の合字が表示されなかったり”?”になったりする場合は、そのアプリがUnicodeに対応したものであるかを確認してみるのがよいかも知れません。