wiconv - 文字列のコードページの変換

Windows のコマンドラインで使用する、文字コード変換プログラムです。
変換機構として、Internet Explorer に付属する MLang.DLL が提供する
ConvertINetString() および Windows 標準の MultiByteToWideChar()、
WideCharToMultiByte() を使用しています。

更新履歴
ver 0.1
 新規作成
ver 0.2 (2004/9/4)
 -mオプションの追加
 変換できない場合にエラーメッセージを表示するように変更
 変換元が Unicode(UTF-7/8/16) の場合、先頭の BOM はスキップするように変更

[ ダウンロード ]

名前
    wiconv - 文字列のコードページの変換

書式
    wiconv [-f fromcp] [-t tocp] [-d] [-m] [filename]

説明
    wiconv は filename で指定されたファイルの文字コードを変換し、標準
    出力に書き出します。
    ファイル名が指定されていない場合は、標準入力から読み取ります。

オプション
    -f fromcp
        変換前の文字列のコードページを指定します。"932" や "65001" の
        ような数値での指定、または "Shift_JIS" や "UTF-8" のような名称
        での指定が可能です。
        省略した場合、OEMコードページ(日本語 Windows では932)が使用さ
        れます。
    -t tocp
        変換後の文字列のコードページを指定します。"932" や "65001" の
        ような数値での指定、または "Shift_JIS" や "UTF-8" のような名称
        での指定が可能です。
        省略した場合、OEMコードページ(日本語 Windows では932)が使用さ
        れます。
    -d
        変換結果を16進ダンプで出力します。出力されるフォーマットは
        \x01\x23\x45 のような形式です。
    -m
        変換する機構として、Internet Explorer の MLang.DLL ではなく、
        Windows 標準の MultiByteToWideChar / WideCharToMultiByte を使
        用します。

説明
    wiconv は、Windows および Internet Explorer が持つ機構を利用して
    文字コードの変換を行います。
    -m オプションが省略されたときは、Internet Explorer に付属する
    MLang.DLL に含まれる ConvertINetString 関数を利用してコードページ
    を変換します。この場合、Internet Explorer 5.5 以降が必要となりま
	す。
    -m オプションが付加された場合には、Windows 標準の 
    MultiByteToWideChar および WideCharToMultiByte 関数を利用してコー
    ドページを変換します。この場合、文字列はいったんUnicodeに変換され、
    その後、目的となるコードページに再度変換されます。
    MLang.DLL と Windows 標準の変換機構では、利用可能なコードページが
    異なる、同一のコードページへの変換であっても結果が異なるなど、い
    くつかの点で相違があります。

バグ
    サポートされるコードページは Windows に依存します。
    例えば、-m オプションが指定されておらず、MLang.DLL の変換機構を利
    用した場合、EUC-JP から ISO-2022-JP への直接の変換はサポートされて
    いません。この場合、いったん Unicode などに変換し、それを再度変換
    するる必要があります。

例
    シフト JIS で書かれたテキストファイルを UTF-8 に変換する
    C:\> wiconv -f Shift_JIS -t UTF-8 file.txt 

参照
    レジストリの HKCR\MIME\Database\Codepage 以下
    レジストリの HKLM\SYSTEM\CurrentControlSet\Control\Nls\CodePage 以下
    Code-Page Identifiers - MSDN Library
      

著者
    はせがわ ようすけ