tconv "CUI Text Encoding Converter and DLL" Version 0.7


ソフトウェアの更新日付: 2000年4月15日


ソフトウェアの著作権表記: Copyright (c) 1999,2000 by Pie Dey Co.,Ltd.


 ここは、tconv "CUI Text Encoding Converter and DLL" Version 0.7に関する情報を提供するページです。tconv "CUI Text Encoding Converter and DLL" Version 0.7は、 株式会社ピーデー の川俣 晶 (autumn@piedey.co.jp)が開発し、フリーソフトウェアとして公開しているソフトウェアです。


概要

 テキストファイルのテキストエンコーディングスキームを変換します。

 コマンドライン形式のツールと、他のアプリケーションプログラムから利用できるDLL形式の二つの利用方法が提供されます。DLLは無料で再配布できます。

 変換対象としては、JIS TR X 0015:1999 XML日本語プロファイルで定義される文字エンコードスキーム名、RFC 2781 "UTF-16, an encoding of ISO 10646"に従ったUTF-16, UTF-16BE, UTF-16LEをサポートします。この他、UTF-16でありながらエンディアンを明示的に指定する等の目的で、必要なバリエーションにはx-で始まる名前を付与してサポートしています。

 明示的な指定の他に、XML宣言を利用してソース側エンコーディングを判定するXMLモード、E-Mailメッセージのヘッダー情報でエンコーディングを判定するE-Mailモード、テキストそのもののビットパターンで判別する自動判定モードを持ちます。

 DLLのAPI仕様は、アーカイブ同梱のtconv_api.txtに解説されています。

動作環境

Windows NT4.0/2000 (Win9X非サポート)

使用方法

 コマンドラインより以下の書式で使用します。

tconv [-r] [-e エンコーディング名] [-l 改行変換コード] [-d デフォルトエンコーディング名] [入力エンコーディング名 [入力エンコーディング名 [ファイル名]]]

 ファイル名を省略すると、標準入力から読み込みます。

 変換結果は標準出力に出力されます。

 出力エンコーディング名が省略された場合、または、"-"が指定された場合は、環境変数TCONVLIB_OUTPUT_DEFAULTの名前が使用されます。この環境変数が定義されないときは、"x-sjis-cp932"がデフォルトとして使われます。

 出力エンコーディングがWindows文字セット(シフトJIS)以外の場合、コンソールに出力すると、文字化けします(当然の結果ですが)。

 -rを付けると変換できない文字はXML文字参照として変換します。XMLモードであるか否かに関係なく指定できます。

 -eは、先頭の1行がXML宣言であるとき、encoding=の文字列を差し替えます。(無ければ追加します)。XMLモードであるか否かに関係なく指定できます。出力エンコーディング名と無関係の名前を指定できますが、当然、誤った名前を指定すると、処理できないXMLファイルになってしまう可能性があります。"-"を指定すると出力エンコーディング名として使用された名前が割り当てられます。

 -lを付けると改行コードの変換も行います。改行変換コードは別表に示すシンボルのいずれかを指定します。

 -dは、入力エンコーディング名が"-"のときのみ指定する意味があります。-dの次に書かれた名前は、自動判定が確実な結論を出せないときのデフォルトとなるエンコーディング名を指定します。これが省略されたときは、環境変数TCONVLIB_INPUT_DEFAULTの値が使用されます。それも定義されていないときは、"x-sjis-cp932"がデフォルトとして使われます。

例)

 Windows文字セット(シフトJIS)からUTF-8へファイルhoge.txtを変換するには。

tconv Windows-31J UTF-8 hoge.txt

 プロセスの終了値としては、以下のものがサポートされています。

0 エラー無し

2 エラー発生

配布規則

 本ソフトウェアは、株式会社ピーデーがサービスのために配布するもので、商品ではありません。無料です。従って、一切のサポートはありません。保証もありません。

 なんらかの保証が必要とされる場合は、内容に関する有償サポート契約が可能です。詳しくは、 support@piedey.co.jp (support@piedey.co.jp) までご連絡下さい。

 本ソフトウェアの改編、転載などは、商用、非商用に関わらず自由です。ただし、文字コード変換機能に関する著作権表記"Copyright (c) 1999,2000 by Pie Dey Co.,Ltd."を行うことを条件とします。

 上記の規則より、tconvlib.dllを他のアプリケーションソフトウェアの一部として再配布することが可能ですが、その場合は、バージョン間の非互換性の問題を回避するために、必ずアプリケーションソフトウェア固有のディレクトリにインストールし、Systemディレクトリなどの共用ディレクトリに保存しないようにして下さい。

 本ソフトウェアの配布アーカイブをそのままパソコン通信、インターネット、書籍などに掲載する場合は、ご一報下さい。tconvlib.dllをソフトウェアの一部として再配布するような場合には、連絡は不要です。

使用できるエンコーディング名

 エンコーディング名は、IANAに登録された名前を採用していますが、一部そうでないものもあります。x-で始まる名前のうち、名前にsjis, euc-jp, iso2022jpを含むものは、JIS X TR 0015:1999 XML日本語プロファイルに準拠しています。

・メジャーな標準

・us-ascii

 いわゆるASCIIコード。

・iso-8859-1

 欧米でよく使用される8bitコード

・utf-8

 BOM付きのUTF-8。

・utf-8n

 BOM無しのUTF-8。

・utf-16

 BOM付きのUTF-16。入力時、エンディアンはBOMによる自動判定。出力時はBOM付きUTF-16 Little Endianと仮定される。明示的にエンディアンを指定して出力したい場合は、x-utf-16le-bomまたはx-utf-16be-bomを使用します。

・utf-16be

 BOM無しのUTF-16 Big Endian。

・utf-16le

 BOM無しのUTF-16 Little Endian。

・ucs-4

 BOM付きのUCS-4。入力時、エンディアンはBOMによる自動判定。出力時はBOM付きUCS-4 Little Endianと仮定される。明示的にエンディアンを指定して出力したい場合は、x-ucs-4le-bomまたはx-ucs-4be-bomを使用します。

・utf-32

 BOM付きのUTF-32。入力時、エンディアンはBOMによる自動判定。出力時はBOM付きUTF-32 Little Endianと仮定される。明示的にエンディアンを指定して出力したい場合は、x-utf-32le-bomまたはx-utf-32be-bomを使用します。

・utf-32be

 BOM無しのUTF-32 Big Endian。

・utf-32le

 BOM無しのUTF-32 Little Endian。

・x-sjis-jdk1.1.7

 シフトJIS。

 Unicodeへの変換はJavaネイティブテーブルを使用。

・x-sjis-unicode-0.9

 シフトJIS。

 Unicodeへの変換はUnicodeコンソーシアムのテーブルを使用。

・x-sjis-jisx0221-1995

 シフトJIS。

 Unicodeへの変換はJIS X 0221-1995のテーブルを使用。

・x-sjis-cp932 (alias Windows-31J, Shift_JIS)

 シフトJIS。

 Unicodeへの変換はMicrosoftのCP932テーブルを使用。

・x-eucjp-unicode-0.9

 EUC-JP。

 Unicodeへの変換はUnicodeコンソーシアムのテーブルを使用。

・x-eucjp-jisx0221-1995

 EUC-JP。

 Unicodeへの変換はJIS X 0221-1995のテーブルを使用。

・x-eucjp-open-19970715-ms (alias EUC-JP)

 EUC-JP。

 参考URL1および2を参照。

 (Unicodeへの変換はMicrosoftのCP932テーブルを使用)

・x-eucjp-open-19970715-0201

 EUC-JP。

 参考URL1および2を参照。

 (半角文字がJIS X 0201であると仮定)

・x-eucjp-open-19970715-ascii

 EUC-JP。

 参考URL1および2を参照。

 (半角文字がUS-ASCIIであると仮定)

・x-iso2022jp-unicode-0.9

 EUC-JP。

 Unicodeへの変換はUnicodeコンソーシアムのテーブルを使用。

・x-iso2022jp-jisx0221-1995

・x-iso2022jp-cp932 (alias ISO-2022-JP)

・x-iso2022jp-jdk1.1.7

・x-iso2022jp-19970715-ascii

 以上は、ISO-2022-JPであるが、変換テーブルは、シフトJISまたはEUC-JPの類似名のものを使用する。

・x-utf-16le-bom

 BOM付きのUTF-16 Little Endian。この名前は、エンディアンを明示的に指定してBOM付き出力を行うためのものであり、公開されたネットワークで使用できないことに注意。

・x-utf-16be-bom

 BOM付きのUTF-16 Big Endian。この名前は、エンディアンを明示的に指定してBOM付き出力を行うためのものであり、公開されたネットワークで使用できないことに注意。

・x-utf-32le-bom

 BOM付きのUTF-32 Little Endian。この名前は、エンディアンを明示的に指定してBOM付き出力を行うためのものであり、公開されたネットワークで使用できないことに注意。

・x-utf-32be-bom

 BOM付きのUTF-32 Big Endian。この名前は、エンディアンを明示的に指定してBOM付き出力を行うためのものであり、公開されたネットワークで使用できないことに注意。

・x-ucs-4le-bom

 BOM付きのUCS-4 Little Endian。この名前は、エンディアンを明示的に指定してBOM付き出力を行うためのものであり、公開されたネットワークで使用できないことに注意。

・x-ucs-4be-bom

 BOM付きのUCS-4 Big Endian。この名前は、エンディアンを明示的に指定してBOM付き出力を行うためのものであり、公開されたネットワークで使用できないことに注意。

・x-ucs-4le

 BOM無しのUCS-4 Little Endian。この名前は、エンディアンを明示的に指定してBOM付き出力を行うためのものであり、公開されたネットワークで使用できないことに注意。

・x-ucs-4be

 BOM無しのUCS-4 Big Endian。この名前は、エンディアンを明示的に指定してBOM付き出力を行うためのものであり、公開されたネットワークで使用できないことに注意。

・Windows-31J (x-sjis-cp932の別名)

・Shift_JIS (x-sjis-cp932の別名)

・EUC-JP (x-eucjp-open-19970715-msの別名)

・ISO-2022-JP (x-iso2022jp-cp932の別名)

・E-Mail

 入力データを電子メールの受信イメージと見なし、電子メールヘッダーから、エンコーディングを判定して処理する。

・XML (XML-auto-detection and replace XML-Declaration)

 入力データをXML文書と見なし、XML仕様書1.0版Appendix Fのルール(ただし一部変更)により、エンコーディングを判定して処理する。

・- またはパラメータ無し

 入力時はプレーンテキストとして自動判定を試みる。

 BOMがあればutf-16leまたはbeとなる。

 BOMが無い場合は、ISO-2022-JPのエスケープシーケンスを調べ、あればISO-2022-JPとみなす。それでも分からない場合は、指定されたデフォルトと見なす。

 出力時は指定されたデフォルトが使用される。

改行変換コード

"TRANSPARENT": 何もしない(無指定時のデフォルト)

"in2out": inをoutに変換する。inには、CR, LF, CRLF, ALLが指定できる。outには、CR, LF, CRLFが指定できる。ALLはCR, LF, CRLFのすべてのパターンに合致する。(例:CRLF2LF)

参考資料

参考資料1

 JIS TR X 0015:1999 XML日本語プロファイル

http://www.fxis.co.jp/DMS/sgml/xml/tr_xml_jpf/toc.htm

参考資料2

 EUC-JPの各種変換規則:

http://www.opengroup.or.jp/jvc/cde/appendix.html

UCS-4ファミリーに関する制限事項

 UCS-4ファミリーのサポートは限定的なものです。UCS-4ファミリーはucs-4、x-ucs-4le-bom、x-ucs-4be-bom、x-ucs-4le、x-ucs-4beのいずれかを示します。

 UCS-4ファミリーの一つを指定した場合で、かつ、文字列処理が行われる場合、U+10ffffを超えるコードは処理できません。これは文字列処理が、UTF-16形式で行われるためです。

 文字列処理が行われるのは、以下のいずれかのケースです。

・ TConvLib_Create APIのlpctInputEncodingに"XML"を指定したとき

・ TConvLib_Create APIのlpctInputEncodingに"E-Mail"を指定したとき

・ TConvLib_Create APIのlpctXMLEncodingにNULL以外を指定したとき

設定上の注意

 tconv.exeはtconvlib.dllを必要とします。ですので、tconv.exeを使用する場合には、tconvlib.dllを環境変数PATHが通ったディレクトリにコピーしてください。

カスタマイズ

 自分で新しい変換テーブルを追加できます。

シフトJISベースの場合:

 US-ASCIIのテキストファイルを作成します。

 最初の1行には、

Shift_JIS

 と記述します。

 2行目以降は、16進表記のシフトJISコード+TAB+16進表記のUnicodeコードを記述します。

例:

0x400x0040

EUC-JPベースの場合:

 先頭の1行は

EUC-JP

 です。その他はシフトJISと同じです。

ISO-2022-JPベースの場合:

 先頭の1行は

ISO-2022-JP

 です。

 2行目には、変換に利用するシフトJISまたはEUC-JPのエンコーディング名を記述します。つまり、ISO-2022-JP単体で変換テーブルを作ることはできません。

 以上のファイルをtconv.exeと同じディレクトリに置くと、そのファイル名のタイトルがエンコーディング名として認識されます。

例:

c:\bin\myencoding.txt

 なら

myencoding

 がエンコーディング名になります。

添付ファイル

ファイル名 説明
tconv.exe 実行ファイル本体
tconv.txt 説明テキスト
tconv.cpp

stdafx.cpp

stdafx.h

tconv.dsp

tconv.dsw
ソースコード
tconvlib.dll 変換DLL

連絡先

tconv "CUI Text Encoding Converter and DLL" Version 0.7に関するお問い合わせはautumn@piedey.co.jpへお願いします。

本ソフトウェアは、 NT-Toolsメーリングリスト にてサポートを行っています。質問などは、なるべくこちらのメーリングリストにお寄せ下さい。

ダウンロード

tconv "CUI Text Encoding Converter and DLL" Version 0.7をダウンロードする。

変更履歴

日付 Ver. 説明
2008年1月18日 ***0.9***

ISO-2022-JPが2バイト文字のモードで終了したときにUS-ASCIIに戻すエスケープシーケンスを追加

2000年5月5日 ***0.8***

 Windows 95/98対応

2000年4月15日 ***0.7***

 -l, -d追加。UTF-32など多数追加。UTF-16LE/BEはRFC 2781が決定したことを受けて、それに合わせ、BOM無しに変更。これを使用している場合は互換性に注意。

1999年7月22日 ***0.6***

 -eと-rを追加。変換テーブルにus-asciiを追加。

1999年7月20日 ***0.5***

Version 0.4の不備を直すと言いつつ、内容一新の大改造。

1999年6月19日 ***0.4***

 仕様を一新。E-Mailモードのみサポートの暫定公開。

1999年4月9日 ***0.3***

 自動検出したエンコーディング名で、入力エンコーディングを上書きしない。

1999年3月24日 ***0.2***

 パラメータのエンコーディング名に-が落ちていたのを修正。

1999年3月22日 ***0.1***

最初の版


tconv "CUI Text Encoding Converter and DLL"のバージョン一覧ページに戻る

ダウンロードのトップページへ戻る


このドキュメントは2011年11月20日 17:32:37に、OSDMシステムにより自動生成されました。


PIEDEY LINK BANNER
本サイトに関するお問い合わせ先: webmaster@piedey.co.jp
ソフトウェアに関するお問い合わせ先: support@piedey.co.jp
作成: 株式会社ピーデー・川俣 晶/autumn@piedey.co.jp