化けるんですけど…

記号が化ける。丸月数字とかの所謂機種依存文字が化けるのであれば、まぁ分かるのだが、そうではない(ふつうは化けない記号)が化けてしまう

÷とか×が化けるのは勘弁していただきたい。

System.Text.Encoding.GetEncoding("Shift_JIS")でも、System.Text.Encoding.GetEncoding(932)でも取得できる物体は同じ。

日本語版Windows互換の変換ルーチンを作ってみる

char値を0から65535の範囲でループさせてUNICODE→Shift_JISの変換マップを引きずり出して、それに基づいた変換ルーチンを作る。

何も考えずにざっと作ったモノがこれだ。ダウンロードしてみる

効率なんて知らん。化けずに変換できりゃいいんだ!!というコンセプトなので、これを使って遅いぞ!ゴルァ!!などとぬかすのは止していただきたい。

それじゃ不便だろ。

そもそもCSVファイルを扱っていて化け問題にぶち当たっていたのに、これは使い勝手が悪すぎ。

と言う事で、System.Text.Encodingから派生させたSJISEncodingを作ってみた。ダウンロードしてみる

これで、System.IO.StreamReader reader = new System.IO.StreamReader(filename, new SJISEncoding());なんてしてやれば、Shift_JISなテキストファイルの読み込みが簡単にできるわけだ。

スピードを気にしなければとくに問題は無いっぽい。

使用条件

  1. SJIS_CODECおよび、SJISEncodingはの石科 優武の著作物である。
  2. ユーザーは日本国内において、SJIS_CODECおよびSJISEncodingを私的に、あるいは商品に組み込む形で使用することができる。
    ただし、SJIS_CODECおよびSJISEncodingそのものを直接販売することは認めない。
  3. ユーザーはSJIS_CODECおよびSJISEncodingを使用する際に、自由に改変することができる。
  4. ユーザーは、プログラム改変の有無に関わらず、対価を得ない条件の下でSJIS_CODECおよびSJISEncodingを頒布することができる。
  5. SJISEncodingを頒布する際にはcopyright.txt、および利用条件を添付する必要がある。
  6. ユーザーがプログラム改変を加えたSJIS_CODECおよびSJISEncodingを頒布する際には、付属のcopyright.txtに氏名あるいは団体名を追記することができる。
    ただし、プログラムを改変せずに、copyright.txtに氏名あるいは団体名を追記することは許されない。
    また、利用条件を改変してはいけない。
  7. 著者者は、ユーザーがSJIS_CODECおよびSJISEncodingを使用することに期待する機能を一切保証しない。
  8. SJIS_CODECおよびSJISEncodingを利用したことによって、いかなる損害を被っても石科 優武はその責を負わない。

文句とかじゃなくて

雑誌に掲載したい(なんて無いだろうけど)とか、あまりにもダサいプログラム直してやったから見やがれ、とかで連絡したい場合には下記アドレスまでよろしくお願いしますですよ。

めあど

尚、文句とかお礼とか感想を送ってくるのは嫌がらせと判断させていただきます。そういったものに一切返信はしません。