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