「NEC選定IBM拡張文字」における自分の勘違い

ある意味赤っ恥を晒すという話でもあるわけですが、自分への戒めとして勘違いしてたことをここに記しておきます。

よく考えたら(考えなくても)今時当たり前だよなー、と。

何かというと「今時のOSでShift-JIS『NEC選定IBM拡張文字』をきちんと扱いたい場合はコード自体を直接記述しないと駄目」ということ。
Input Methodの文字コードやテキストをそのまま引っ張ってきても、必ずUnicodeとの交換処理が行われるので、見た目ではなく中身としては別のコードで入力されてくれる、という点



たとえばうちの環境、Windows 7 ProにATOK17とMicrosoft IME 10.1が入っていますが、それぞれの文字コード一覧表(前者:文字パレット、後者:IMEパッド)で「」を打とうとした場合……。

100502_WinSJISNECsIBMexc_1  100502_WinSJISNECsIBMexc_2

ATOK17ではコード自体の表示がED40になってます。
MS-IME 10.1ではハイライト表示自体でもうわかってしまいますが、指定したコードとは違い、Shift-JISとしてはFA5C(IBM拡張文字)で表示されている。



これを実際にバイナリエディタでみたときには、以下の状態に。

100502_WinSJISNECsIBMexc_3

ATOKだろうがMS-IMEだろうが、すべての「」がFA5Cになってしまってます。



これは、入力元の一覧や出力先のコードとは無関係に、OS内部ではCP932コードテーブルを通じて一旦Unicodeに置き換えたうえで、さらに出力先のShift-JISへの置換を行っているときの問題だろうと推測。単にInput Methodの並び表示が単なる指定したコードでの一覧表示をしているだけでしかない、だけかもしれない。どっちにしろ余り自信ないけど。



よくよく調べるとMSのサイトに、どのように置き換わるのかちゃんと載ってた。

[PRB] SHIFT - JIS と Unicode 間の変換問題



別にShift-JISに拘る必要も、内部のコード記述自体に拘る必要も、世の中的にはおそらく普通に使う限りは99.9999999%くらいどうでもいい話になるんだろうと思いますが、残る0.0000001%のケースにぶちあたったので、後々忘れないように自分メモとして書きました。たぶん普通に考えれば当たり前に語り尽くされてる今更な話だろうと思う。



#ちなみにMac OS Xのことえり(文字ビューア)で「Shift-JIS (X0208)」では、NEC特殊文字・NEC選定IBM拡張文字・IBM拡張文字いずれも一覧に表示されないので無関係なお話。Mac版のATOKとかは手元にないのでわかりません。

このエントリーを含むはてなブックマーク はてなブックマーク - 「NEC選定IBM拡張文字」における自分の勘違い

コメント

非公開コメント

はてブ数順傾向

プロフィール

あさうす

  • Author:あさうす
  • DTP業界を中心に主観だらけの毒を吐いてます。後ろ盾なし、保証なし。あくまでも独断と偏見に満ちているだけで、何かの圧力とかはありません。たぶん。いやないです。信じてください。

    なお、名無しコメント&煽り、勝手にトラックバックやリンクなどはご自由に。spam認定したもの以外は削除しません。ただしFC2の都合でTBは弾かれるかもしれません。

    当blogは、Firefoxを推奨します。

    何かお問い合わせございましたら [assause@gmail.com] までどうぞ。

月別アーカイブ