これは、C# & .Net Framework 2.0 で作成しました
はじめに
文字コード変換を行う .NET Framework ライブラリです。
一応、System.Text.Encoding クラスを継承して作ってみました。
- UNICDE の符号化の一つ「Bocu-1」符号化
- UNICDE の符号化の一つ「PunnyCode」符号化(System.Globalization.IdnMapping クラスを System.Text.Encoding クラスにラッピングしただけ)
- UNICDE の符号化の一つ「UTF-1」「UTF-5」「UTF-6」符号化
PunnyCodeStream(PunnyCode は「.(ピリオド)」単位で実施する必要があり、「.」単位でバッファリングしながら符号化するクラス)
タブ(0x09)と改行(0x0dと0x0a)とスペース(0x20)と読点をエンコード/デコードの対象から除外
- UNICDE の符号化の一つ「LACE」「RACE」符号化
参考URL
コードページ
よくわからないので、System.Text.Encodings に登録されている文字コード集で採番されていない番号とした(ver3.2.0.0 以降)
- 59001 : UTF-1
- 59005 : UTF-5
- 59006 : UTF-6
- 59011 : Bocu-1
- 59020 : PunnyCode
- 59021 : LACE
- 59022 : RACE
動作環境
Microsoft .NET Framework2.0
API リファレンス
API リファレンスのベースとなる XML
インストール方法
まず、ランタイム(.NET Framework2.0)をセットアップします。
sEncoding.net.lzh をダウンロードします。
ダウンロードしたファイルを解凍しします。
(LHAは、吉崎栄泰氏が、著作権を所有)
sEncoding.dll を、パスの通ったディレクトリにコピーします。
自らのプログラムで使用できるようになっているかと思います。
削除方法
- sEncoding.dll を削除して、.NET Framework2.0 ランタイムを削除すればよいです。
免責など
修正BSDライセンスで配布します。
(修正BSDライセンスにしても、あまり以前と、ライセンス条項って変わっていないような気がするんだよなぁ〜)
Version1.0.0.0DownLoad(bocu-1.net.lzh as 24,731byte)(開発終了) (bocu-1.net.lzh.base64)
Version3.2.3.0DownLoad(sEncoding.net.lzh as 108,929byte) (sEncoding.net.lzh.base64)
履歴
- 2014/09/08 : ver1.0.0.0 最初のバージョン
- 2014/09/15 : ver2.0.0.0 PunnyCode を追加。名前を bocu1.net から sEncoding.net に変更した
- 2014/09/21 : ver2.0.0.1 PunnyCodeStream クラスにて、タブ(0x09)/改行(0x0d、0x0a) をエンコード/デコードの対象から除外するようにした
- 2014/09/22 : ver2.0.0.2 PunnyCodeStream クラスにて、スペース(0x20)/読点をエンコード/デコードの対象から除外するようにした
- 2015/01/06 : ver3.0.0.0 クラスを再設計した(アルゴリズムをEncodingクラス本体から、Encoder/Decoder クラスへ移管、PunnyCodeStreamクラスの廃止など)
- 2015/02/23 : ver3.0.0.1 Base32 アルゴリズムのバグ修正
- 2015/07/07 : ver3.0.0.2 JapaneseEncoding(String) 関数を追加した
- 2015/07/09 : ver3.0.0.3 JapaneseEncoding(String) 関数を修正した
- 2016/08/04 : ver3.0.0.4 JapaneseEncoding(String) 関数を修正した
- 2016/08/19 : ver3.0.0.5 PunnyCode Encoder(Stream) のバグ修正
- 2017/03/11 : ver3.1.0.0 UTF-6 を追加。それに応じて、UTF-5 の内部処理を変更。RACE と LACE を追加。それに応じて、PunnyCode の内部処理を変更。UTF-1 を追加。
- 2018/08/10 : ver3.2.0.0 CanUnicodeBOM(Encoding), IsCorrectEncoding(byte[], Encoding) という関数を追加した。独自実装したコードページを使われていない番号(590xx)に変更した。
- 2020/01/27 : ver3.2.1.0 JapaneseEncoding(String) 関数を修正した
- 2020/01/31 : ver3.2.2.0 IsCorrectEncoding() 関数をより厳密に検査するようにした。
- 2020/04/19 : ver3.2.3.0 JapaneseEncoding(String) 関数を修正した
mail to active@window.goukaku.com