• 締切済み

VB2005でJIS拡張漢字の各文字コードを取得する方法

ある関数に文字列を渡して各文字コードを取得するプログラムを作成しようとしています。 基本的な文字のコードは取得できるのですが、JIS拡張漢字のほとんどが正しく取得できません。 失敗している文字は内部的に「?」(3F)となってしまいます。 例:拡張漢字のコード値(SJIS:81B2)を変換するとコード値が「3F」になってしまう。(テキストエディタなどで文字化けすると「?」に化けるのと同じなのかな?) 正しく文字コードを取得する方法をご存知の方、またヒントなどありましたらよろしくお願いします。 【環境】WindowsXP     VisualBasic2005 【プログラムの流れ】例:SJISコードを取得する場合 文字列を受取る→1文字取得→System.Text.EncodingでSJIS指定のバイト型配列文字に変換(文字コードを取得)

みんなの回答

  • SortaNerd
  • ベストアンサー率43% (1185/2748)
回答No.1

WindowsはJIS2004のShift_JISに対応していません。 Windows以前からMicrosoftはShift_JISに独自に拡張をしてきましたが、その拡張とJIS2004で新しく定義された文字がバッティングしています。 JIS2004に対応しようとすれば旧来の環境を捨てるしかない状況です。 そしてMicrosoftは互換性を取ったということです。 JIS2004の拡張漢字を扱いたいのならUnicodeで扱うほかありません。

viento100
質問者

お礼

回答有難う御座います。 上記であれば、対象文字のコードを取得するには、文字をStringとしてではなくUnicodeで受け取り、コードに変換するということですね。 ちと処理が複雑になるってことですね。。。 ありがとうございました。

関連するQ&A