Phoneで各種日本語文字コードを扱うむしゃくしゃしてやったシリーズ経緯Silverlightでデータベースを閲覧するプログラムを作っていました。その要件の中にCSVファイルを出力する機能がありました。業務用アプリなので、出力したCSVファイルはEXCELで開けなくてはなりません。なれば、シフトJISでファイルに書き出さなければなりません。ところがSilverlightはUnicode以外サポートしていない模様。マイクロソフトの文書を読むと、カスタムエンコーディングクラスを作るか、もしくは、サーバサイドで処理せよと書いてある。そんな面倒なことができるか!というわけで、自力でシフトJISを扱う関数を作ってみました。苛立ちに任せて力業で作った間に合わせコードなので、品質保証はできません。動けばいいや、という用途向けです。修正カタカナ等、一部の文字が変換できなかった問題を修正(半角カタカナにも対応)コード変換テーブルを縮小。配列の直接ルックアップを止めて、バイナリサーチに変更。若干遅くなったと思うが、コードサイズが小さくなった。中黒(・)の変換が正しくなかったのを修正。一部の記号が機種依存文字に変換される問題を修正。同じグリフで異なるJISコードが割り当てられている漢字をUCSからJISに変換した時、より若いコードに変換されるようにした。2015-01-13修正1文字4バイト以上のUTF-8コード、UTF-16のサロゲートペアに対応。使い方の説明は面倒なのでしません。コードを読んで勝手に使ってください。ライセンス修正BSDライセンスとします。作者は著作権を放棄しません。このライブラリのソースコードから著作権表示を削除してはいけません。このライブラリを使用したアプリケーションの実行形式や文書などに、このライブラリを使用した旨を記述する必要はありません。このライブラリを使用した事によるいかなる結果について、作者は責任を負いません。