|
|||||
文字コード変換や文字コード判定のツール(ソフト)やサンプルを紹介します。 <文字コード変換> インターネットに接続されているコンピュータ(OS)には、いろんな種類の文字コードが使用されています。 文字コードが異なるOSどうしでデータをやりとりする場合は、どうしても文字コード変換が必要になります。 特にWEBページは沢山の文字コードが使用されており、IEなどが文字コード変換をして読めるようにしてくれています。 文字コード変換はどのような方法で行なわれるか簡単にご紹介します。 ※VB6の文字コード変換方法 VB6には文字コード変換機能が標準で備わっていないので、OSの機能やその他のDLLの機能や自分で変換する事になります。 良く使用される方法は「ADODB.Streamによる文字コード変換」、「WideCharToMultiByteとMultiByteToWideCharによる 文字コード変換」だと思います。このサイトのツールやサンプルソースでもこれらの方法で文字コード変換を実現しています。 ※VB.NETやC#.NETの文字コード変換方法 .NETには標準で文字コード変換機能が備わっているので簡単です。System.Text.Encodingを使用すれば変換出来ます。 このサイトのツールやサンプルソースでもこれらの方法で文字コード変換を実現しています。 <文字コード判定> 先に文字コード変換の説明を書きましたが、実は、文字コード変換する前に変換前の文字コード判定をしないと文字コード変換が 出来ません。通常は人間が判断します。例えばWindowsはSJISとかUNIXはEUCとか...OSのインストール時に決まっています。 しかし、WEBページのようにファイル(各ページ)ごとに文字コードが違う場合は、文字コードの判定が必要になります。 文字コード判定は難しく100%完璧な判定は無理だと思います。OSの機能やその他のDLLを使用しても文字コードの性質上、 無理だと思います。しかし、なんとなくは文字コードを判別出来ますのでその方法を簡単にご紹介します。 その方法とは、文字コード毎に使っていないコード値と、その文字コードしか使っていないコード値を判断し、確率のような値 を計算し、文字コードを判断します。このサイトのツールやサンプルソースでもこの方法で文字コード判定を実現しています。 文字コード判定&変換ツール.NET コマンドライン(バッチ)で文字コード変換する方法 SJIS/JIS/EUC/UNICODE/UTF-7/UTF-8対応。File/Folder(SubFolder)可 コマンドライン/送るメニュー可 文字コード判定/変換DLL(VB6/VB.NET/C#.NET) VBSやVBAで文字コードを変換する方法 文字コード判定(SJIS/JIS/EUC/UNICODE/UTF7/UTF8/バイナリ)、文字コード変換ライブラリ(DLL) 文字コード判定/変換ツール(VB6のソース付) SJIS、JIS、EUC、UNICODE(UTF-16)、UTF-7、UTF-8の文字コード判定/変換(コマンドライン可) WEBエンコード/デコードツール URLデコード/エンコード方法 HTMLデコード/エンコード方法 URLエンコード(GETパラメタのみ可)/URLデコード/HTMLエンコード/HTMLデコード/文字コード表示 フォルダ内のファイル比較ツール フォルダ比較ツールですが、 フォルダ以下の全ファイルの文字コードを一覧表示して選択ファイルを文字コード変換する事が出来ます。 テキスト差分表示ツール ファイル比較ツールですが、指定ファイルの文字コード判定と文字コード変換が出来ます。 文字コードを変換する方法 ネット時代の現在は、いろんな文字コードのOSがインターネットに繋がっているため、 ダウンロードしたファイルの文字コードが自分が使っているOSの文字コードと異なる事があります。 また、大手サイトのWEBページは文字コードにUTF−8を使っている事が多いです・・・ 文字コード表示ツールについて ある文字の文字コードを調べる時に、 今まではその文字が含まれるテキストファイルを作りバイナリエディタで表示して文字コードを確認していました。 面倒でしたが、それが手っ取り早かったのです。 最近ちょっとやる気になり、文字コード表示ツールを作る事にしました。 概要は「入力した文字の文字コードを表示するツール」・・・ 文字コードを判定して指定の文字コードに変換するサンプル(VB.NET/C#.NET) 文字コードを自動判定(判別と言うべきか?)して指定の文字コードに変換するサンプルです。 文字コードの変換にはVB.NETのSystem.Text.Encodingを使用しています。 System.Text.Encodingを使用する事で簡単に文字コードの変換が出来るようです。 フォルダ内の文字コード一覧を表示するサンプル(VB.NET/C#.NET) 指定フォルダ内に存在する全てのファイルの文字コードを判定(判別)し一覧表示するサンプルです。 「文字コード判定のサンプル(VB6/VB.NET)」を使用しています。 文字コード判定のサンプル(VB6/VB.NET) 文字コード判定のサンプル(VB6)は以下の流れで文字コードを判定しています。 100%完璧な文字コード判定は難しいですが出来るだけ精度の高い判定を目指しています。 努力の甲斐あって、判定精度が上がって来たように感じます。。が如何でしょうか。。。 ADODB.Streamによる文字コード変換のサンプル(VB6/VB.NET) ADODB.Streamを使用しSJIS、JIS、EUC、UTF-7、UTF-8 からVB6内部文字コードであるUNICODE(UTF-16)に変換します。 また、UNICODEからの逆変換もします。全ての文字コードをUNICODEに変換出来て、 その逆変換も出来れば全ての文字コード間の変換がUNICODEを通して出来る事になります。 UNICODEを通す事による処理速度等は気にしていません。 WideCharToMultiByteとMultiByteToWideCharによる文字コード変換のサンプル(VB6/VB.NET) WideCharToMultiByteとMultiByteToWideCharを使用しSJIS、JIS、EUC、UTF-7、UTF-8から VB6内部文字コードであるUNICODE(UTF-16)に変換します。また、UNICODEからの逆変換もします。 全ての文字コードをUNICODEに変換出来て、その逆変換も出来れば全ての文字コード間の変換が UNICODEを通して出来る事になります。UNICODEを通す事による処理速度等は気にしていません。 WideCharToMultiByteとMultiByteToWideCharによる方法はADODB.Streamによる方法よりも 文字化けが気になりますが、そう言うものなのでしょう。 文字コード変換クラスのサンプル(VB6) 「ADODB.Streamによる文字コード変換のサンプル」のモジュールと「WideCharToMultiByteと MultiByteToWideCharによる文字コード変換のサンプル」のモジュールを使用しSJIS、JIS、EUC、UTF-7、UTF-8から VB6内部文字コードであるUNICODE(UTF-16) に変換します。またUNICODEからの逆変換もします。 全ての文字コードをUNICODE に変換出来て、その逆変換も出来れば全ての文字コード間の変換がUNICODEを通して 出来る事になります。UNICODEを通す事による処理速度等は気にしていません。 その他の機能としては「文字コード判定のサンプル」のモジュールによる文字コード判定、 BOM 付加/削除、改行コードがあります。100%完璧な文字コード判定は難しいですが出来るだけ精度の高い 判定を目指しています。BOMとはUNICODEやUTF-8を判別するためにファイルの先頭付くコードで、 UNICODEの時は&HFF,&HFE、UTF-8の時は&HEF,&HBB,&HBF です。 ファイル入力方法のいろいろ(VB.NET) ファイル入力方法のいろいろ(C#.NET) ファイルをいろんな方法で読み込むサンプルです。いろんな方法とは 文字コード(SJIS,JIS,EUC,UNICODE,UTF7,UTF8)を指定してテキスト形式でファイルを読込む方法と、 バイナリ形式でファイルで読込む方法です。 ファイル出力方法のいろいろ(VB.NET) ファイル出力方法のいろいろ(C#.NET) ファイルをいろんな方法で書き込むサンプルです。いろんな方法とは 文字コード(SJIS,JIS,EUC,UNICODE,UTF7,UTF8)を指定してテキスト形式でファイルを書込む方法と、 バイナリ形式でファイルで書込む方法です。 |