2011-05-10

Phone 7 用 ShiftJIS カスタムエンコーディングクラス

公開すると言っておきながら すっかり忘れていましたが Wakamurasaki で使っている ShiftJIS 用のカスタムエンコーディングクラスです。
時々変な変換をしているようですので無いよりはマシ程度でお使いください。
(Mango あたりで対応してくれいてたりしたら嬉しいですね)


内容は 以前のエントリや WP Forum に書いた内容とほぼ同じです。
DLLを参照設定に追加して、普通の Encoding のように使うだけです。
(エンコードも書いてはいるのですが、テストすらしていません)

SjisEncoding sjisEncoding   = new SjisEncoding();
WebClient    wc             = new WebClient();

wc.Encoding                 = sjisEncoding;
wc.DownloadStringCompleted += (s, e) =>
    {
        if (!e.Cancelled && null == e.Error)
        {
            ParseBbsMenu(e.Result);
        }
    };
wc.DownloadStringAsync(new Uri("http://menu.2ch.net/bbsmenu.html"));

名前空間が変だよ!という方のためにソースも置いておきます。
ご自由に使って頂いて構いませんが、変換テーブルの間違い等見つけてしまった場合は教えて頂けると嬉しいです。

3 件のコメント:

Ichiro さんのコメント...

私もカスタムエンコーディングを実装してみたんですが…… 私は手を抜いて変換テーブルを PC の .NET から作成したんですが、やっぱり時々おかしなのを返してくれるんですよね。

面倒なんでまだデバッグしてないんですが、文字化けを発見したらメール送信できるようにデバッグメニューいれようかと思ってます。

kazuaki さんのコメント...

Ichiroさん こんにちは

なるほど! PC の .NET から持ってくるという方法もあったのですね。
UNICODE コンソーシアムの Web ページからコピペしていた自分って...

その後 いくつか変換ミス調べてたんですが、今のところテーブルの間違いは見つかっていません。
それ以前のコードを疑った方がよさそうな感じです。

文字化け報告メニューの案はいいですね。
でも、現状だと報告メールであふれかえりそうで怖いです(笑

Ichiro さんのコメント...

自分で使っていてよく文字化けを発見するので、デバッグメニューを有効にするのは自分用のビルドだけでいいかも知れません ^^;

一見見て、どーして文字化けしているかわからないことが多いので(同じ文字が別のところではちゃんと出ている)、まずはひとつひとつ個別に見ていくしかないんだろーなーと思ってます。