2010年6月9日

Unicode対Shift-JIS

次週!Unicode対Shift-JIS!覇者はどっちだ!?(戦隊モノの次回予告風に)

というまでもなく、Shift-JISを使わざるを得ない仕様のものもあったりします。
いろんな連携ものがUnicode非対応だったりするしね。
ラインプリンタとかもありますし。

で、Windows7はそれはもう簡単にUnicodeが入力できちゃうんですよね、
文明の進歩ってすごいです
るねっさーんすJ◎-◎しΨ☆Ψ(´┏∀┓` )
古い。

Vistaからそうじゃん。とかXPだってIME2007とかで簡単に入力できるじゃんとかは気付かないふりで。m(_ _"m)ペコリ

結局のところUnicodeの入力をエラーにすればいいってことですから。
こんな感じのロジックになりました。

Unicodeの入力を禁止する。っていうかUnicodeがあったらエラーにするって感じです。


  1. byte[] compare_byte = System.Text.Encoding.GetEncoding(932).GetBytes(チェックする文字列);
  2. string compare_char = System.Text.Encoding.GetEncoding(932).GetString(compare_byte);
  3. if (チェックする文字列 != compare_char)
  4. {
  5.  //Shift-JISにない文字が使われているのでエラーリターン
  6. }

Shift-JISにない文字コードがあると、再びUnicodeに復元できないっていう不可逆的な現象を使っただけです
「?」などに化けてしまうので、Shift-JIS非対応文字が存在すると判断です。

Unicodeのまま使える環境が増えて欲しいです。ホント