表外漢字UCS互換の憂鬱

| コメント(0) | トラックバック(0)

下記のページに、「主権を?奪されて」というくだりがあって、頭の中で警報音が鳴り始めました。

「?奪」の「?」はHTMLソースから既に疑問符になってしまっています。何かが文字化けしてこうなってしまったのでしょう。

何が起こったのか想像する

前後の文脈から考えて、これは「剥奪」でしょう。もっといえば、「剝奪」だったのではないかというのが、私の想像です。何をいっているか、お分かりでしょうか。

「剥」と「剝」、両者は同じ字ですが、形の違いがあるのに気付いたでしょうか。左上の部分が「ヨ」のような形か「互」の上の横線が無いような形かどうかの違いです。

前者はJIS第1水準漢字(面区点位置1-39-77)ですが、後者はJIS第3水準(面区点位置1-15-94)、それも、JIS X 0213の2004年改正(JIS2004)で追加された「表外漢字UCS互換」10文字のひとつです。

上のウェブページでは、原稿に後者の「剝奪」を使ったところ文字化けしてしまったのではないかと想像します。MacでもWindowsでも「剝」を入力することはできます。

表外漢字UCS互換とは

「表外漢字UCS互換」というのは何かというと、『プログラマのための文字コード技術入門』第3章p.90でも説明していますが、簡単にいうと、印刷の字体としては「剝」の方がそれっぽくて好ましいのだけどもJISの例示字体は「剥」の方であった。そこで、JISの文字コード規格(X0213)の2004年改正の際に例示字体を変えたらいい、と考えた人がいたのだけど、Unicodeでは両者を区別し異なる符号位置を与えてしまっていて、JISの例示字体だけ変えると対応関係がうまくないことになってしまう。このため、JISでも以前からの「剥」とは別の符号位置に「剝」を用意することにした、というものです。こういうものが、この字を含めて10文字あります。

UTF-8やShift_JIS-2004, EUC-JIS-2004といった、JIS第3第4水準に対応した文字コードを使っている分には「剝」を使っていていもいいのですが、第1第2水準にしか対応していないJIS X 0208ベースのShift_JISやらISO-2022-JPなどに変換しようとすると、コード変換の実装にもよりますが上記の「?」のようになってしまいます。

上記のウェブページはUTF-8で符号化されているので「剝」を普通に文字として使うこともできるのですが、それでも「?」になってしまっているのは、もともと「剝奪」となっていた原稿を例えばメールで送信しようとしてISO-2022-JPを使ってしまったとか、プレーンテキストのファイルに保存するのに第3第4水準に対応していないコード(Shift_JISやその独自拡張の所謂CP932等)で保存してしまったとかいった事情があったのではないかと想像します。

常用漢字表の「剝」

ちなみにこの漢字は2010年に常用漢字表に入っています。例示されている字体は第3水準の「剝」の方です。ただし、手書きでは「剥」の形でもどちらで書いてもいいのですよ、ということが、常用漢字表では説明されています。

この字体差は手書きの楷書と明朝体活字との習慣の違いでしかないのであって、どちらでも同じ字です。正直これを文字コードで分ける意味は無いように思えますが、過去の経緯からしようがないという例のひとつだといえます。

JIS X 0213と常用漢字の各文字の対応は、JIS X 0213:2012で追加された附属書12に記載されています。

結局どうすればいいのか

JIS X 0213に含まれる文字を全部カバーしている符号化方式、例えばUTF-8やShift_JIS-2004, EUC-JIS-2004を常に使用していれば文字化けしません。現在なら常にUTF-8で困ることはあまりないでしょう。SJISやEUCの符号構造が必要な場合にはShift_JIS-2004やEUC-JIS-2004が使えます。

付記

リンク先のウェブページは、もしかすると全然違う理由で「?」になってしまっていて、元の字も実は「剝」ではなかった、という可能性はもちろんあります。推測ですのであしからず。

トラックバック(0)

トラックバックURL: http://yanok.net/yanok/mt-tb.cgi/554

コメントする

最近のブログ記事

仮名合字・合略仮名の文字コード
合字とは 合字というものがあります。複数…
なぜ『プログラマのための文字コード技術入門』の改訂新版にはSKKと Emacsの話が入っていないのか
拙著『[改訂新版] プログラマのための文…
朝鮮半島の訃報の第3水準漢字
朝鮮戦争で韓国軍として活躍した白善燁氏が…
テレワークの環境改善〜CO2濃度をチェックする
テレワークの問題点 新型コロナウイルスの…
エンジニアHubにて「文字コード再入門─ Unicodeでのサロゲートペア、結合文字、正規化、書記素クラスタを理解しよう!」公開
「エンジニアHub」にて記事を執筆しまし…

広告