Visual Basicで日本語文字コード自動判別&変換

とりあえずダウンロード

こんな物が作れます。

デモのスクリーンショット

〜以下はreadme.htmlの内容〜

これは何か?

名称:EncodingOperation(エンコーディング・オペレーション)

Microsoft Visual Basic 2005で使うことを想定して作られた、.NET 2.0用クラスライブラリDLLです。
もちろんC#や、ほかの.NETファミリーからも使用可能です。
日本語テキストファイルの文字コードを自動判別し、変換を行うEncodingOperation.dllが本体です。
動作確認用のサンプルとして、VB2005 Express Editionで作ったEncodingOperationVB.exeと、
さらに上記二つのソースコードがセットです。

何が出来るのか?

Shift-JIS、EUC-JP、JIS(ISO-2022-JP)、Unicode、Unicod big endian、UTF-8(BOMあり/なし)、UTF-7の自動判別。
上記と、加えて欧文(CP1252)のテキストファイルを変換して読み込みと書き込みを行います。
自動判別は完全に独自の方法で、変換はEUCとJISのみ独自の方法で行っています。

どうやって使うのか?

プロジェクトフォルダ(Form1.vb等がある場所)に、EncodingOperation.dllをコピーします。

プロジェクトのプロパティで、「参照」の項目を開きます。

参照設定に、EncordingOperation.dllを追加します。

参照に追加の画像

名前空間「EncodingOperation」をインポートします。

インポートの画像

以上で準備は終わりです。使える関数は開くと保存の二つだけです。

配布時はEncordingOperation.dllを同梱します。

文字コードを示す列挙

EncodingJP.NONE 読み込み時のみ、自動判別させる際に引数に使います。
EncodingJP.SJIS Shift-JIS
EncodingJP.EUC EUC-JP
EncodingJP.JIS JIS(ISO-2022-JP)
EncodingJP.UTF16_LE Unicode
EncodingJP.UTF16_BE Unicode big endian
EncodingJP.UTF8 UTF-8(BOMなし)
EncodingJP.UTF8_BOM UTF-8(BOMあり)
EncodingJP.UTF7 UTF-7
EncodingJP.ASCII 欧文(CP1252)

読み込み用関数 - TextFileEncoding.LoadFromFile()

Public Shared Function LoadFromFile(ByVal fileName As String, ByRef encode As EncodingJP, ByVal binFix As Boolean, ByRef error As Boolean) As String

fileNameはファイル名を指定します。
encodeに文字コードを指定します。自動判別を行う場合はEncodeJP.NONEを指定します。
ヌル文字を含むテキストでは、binFixがTrueだとスペースに変換して読み込みます。Falseでは読み込みを中止します。
errorは何を入れてもかまいません。関数が成功するとfalseに、エラーが発生した場合はTrueが戻ってきます。
関数が成功した場合、戻り値はString型に変換されたテキストファイルの中身です。
関数が成功した場合、encodeは自動判別の結果、実際に使った文字コードが戻ります。

書き出し用関数 - TextFileEncoding.SaveToFile()

Public Shared Function SaveToFile(ByVal fileName As String, ByVal text As String, ByVal encode As EncodingJP) As Boolean

fileNameにはファイル名を指定します。
textには保存したい文書を入れます。
encodeにはいずれかの文字コードを指定します。

著作権等

フリーソフト
転載自由
作者無責任(このソフトの使用によるいかなる・・・以下略)
ホームページ - http://wantech.ikuto.com/