.NETでJISコードの半角カナを使いたい

提供: MonoBook
移動先: 案内検索

.NETでJISコードの半角カナを使いたい

様々なシステム間で連携しようとすると避けては通れないのが文字コードである。 とくにハードウェアの世界ではまだまだJISコードの最初期仕様「JIS X 0201」が使われている。 いまだにアセンブラを使っている人たちは文字は全て1バイトの範囲に収めたいからだ。日本製のハードウェアはRS-232Cからの出力に「JIS X 0201」で「半角カナ」を含めてくるなんてのはザラだ。いわゆる理化学系の検査機から出てくるレシートなんかがまさにこれ。 POSレジみたいに大量に売れるものではないので進歩も遅い。

そんな機器たちと通信するプログラムをC#で書きたいときにハマるのがこれ。

.NETのJISコードには2種類ある。

  • iso-2022-jp
    • 半角カナなし。
    • 有名なのはこれ。ほとんどのサイトで「JISコード」というとこれを紹介している。
    • System.Text.Encoding.Convertで文字コードを変換する際に半角カナが含まれていると強制的に全角カナになる。
  • csISO2022JP
    • 半角カナあり。

これ!

System.Text.Encoding.GetEncoding("csISO2022JP");

これ!

System.Text.Encoding.GetEncoding("csISO2022JP");

これ!

System.Text.Encoding.GetEncoding("csISO2022JP");

大事なことなので三回言いました。