
	mdnconv -- named.conf/ゾーンファイル用コードセットコンバータ

* 使用法
	mdnconv [オプション..] [ファイル]

* 概要

mdnconv はコマンド行引数で指定されたオプションにしたがってテキストのコー
ドセットを変換し、標準出力に書き出します。引数としてファイル名が指定さ
れればその内容を変換し、指定されなければ標準入力の内容を変換します。

* オプション

mdnconv は次のようなオプションを受け付けます。

	-in 入力コード
		入力コードセットの指定です。指定できる値は、
		iconv() が受け付けるコードセット名、"UTF-5"、
		および後述する -alias オプションで定義したそれらの別名です。
		現在のバージョンではこのオプションの指定は必須です。

	-out 出力コード
		出力コードセットの指定です。指定できる値は、
		iconv() が受け付けるコードセット名、"UTF-5"、
		および後述する -alias オプションで定義したそれらの別名です。
		デフォルトは UTF-8 です。

	-normalize 正規化
		実行する正規化の種類を指定します。このオプションは複数
		指定することができ、その場合には指定された順序で
		正規化が行われます。現在、使用できる正規化の名称は
		以下の通りです。

		ascii-lowercase
			ASCII の大文字を小文字に変換します。
		ascii-uppercase
			ASCII の小文字を大文字に変換します。
		unicode-lowercase
			UnicodeData.txt に定義されている Lowercase Mapping
			にしたがって大文字を小文字に変換します。
		unicode-uppercase
			UnicodeData.txt に定義されている Uppercase Mapping
			にしたがって小文字を大文字に変換します。
		unicode-form-c
			Unicode Normalization Form C にしたがって
			正規化を行います。
		unicode-form-kc
			Unicode Normalization Form KC にしたがって
			正規化を行います。
		ja-delimiter-hack
			全角の句点『。』およびピリオド『．』を
			半角のピリオド『.』に変換します。
		ja-fullwidth
			半角カタカナを全角カタカナに変換します。

	-zld ZLD
		ZLD を指定します。UTF-5 への変換の際、ドメイン名の
		最後が指定された ZLD に一致する場合、ZLD 部分は
		UTF-5 に変換されません。
		あるいは次の -auto と組み合わせた場合には、
		ドメイン名の最後がピリオドであり、かつ非ASCII
		文字を含んでいた場合、指定したZLD が自動的に付加されます。

	-auto
		ドメイン名の最後がピリオドであり、かつ非ASCII
		文字を含んでいる場合に、-zld オプションで指定したZLD を
		自動的に付加します。

	-whole
		正規化および出力コードセットへの変換を入力テキスト
		全体にわたって行います。デフォルトでは、入力テキストの
		非ASCII文字およびその周辺のみを対象とします。

	-alias 別名ファイル
		コードセット名の別名を定義したファイルを指定します。

	-flush
		行単位で出力をフラッシュします。


* 変換の仕組み

mdnconv は、入力されたデータをまず UTF-8 へと変換します。UTF-8 の状態
で正規化を実行し、最後に UTF-8 から出力コードセットへと変換して出力し
ます。入力されたデータのUTF-8への変換、はすべてのデータに対して行われ
ますが、正規化および UTF-8 から出力コードセットへの変換は、非ASCII文字
とその周辺に対してのみ行われます。具体的には、

	非ASCII文字、およびその前後のドメイン名を構成するASCII文字
	とピリオド ([-0-9A-Za-z.]) の部分

が変換対象になります。mdnconv は入力データを構文解析するような処理はし
ていませんので、実際にはドメイン名ではなくても、上記の条件に一致する個
所はすべて変換対象になります。

-whole オプションを指定して mdnconv を起動することにより、すべてのデータに
対して正規化と出力コードセットへの変換を行うことが可能です。


* named.conf/ゾーンファイルの管理方法

named.conf やゾーンファイルはローカルエンコーディングで書かれたものを
マスターとし、これを mdnconv で UTF-8 や UTF-5 に変換して named に食わ
せるのがよいでしょう。例えばローカルエンコーディングのファイルにサフィッ
クス .lc を、UTF-5/UTF-8 のファイルにそれぞれサフィックス.utf5 .utf8 
をつけることにすれば、つぎのような Makefile のルールを指定することで変
換ができます。

	.SUFFIXES: .lc .utf5 .utf8
	.lc.utf5:
		mdnconv -in $(LOCALCODE) -out UTF-5 $< > $@
	.lc.utf8:
		mdnconv -in $(LOCALCODE) -out UTF-8 $< > $@


; $Id: README.ja,v 1.1.1.1 2001/01/31 03:58:59 zarzycki Exp $
