[1]
ToASCII
演算や ToUnicode
演算には、入力としてフラグ
UseSTD3ASCIIRules
があります。
これは、入力であるラベルに対して、 STD 3 が規定する ASCII文字に関する制約を適用するかを指定します。 この検査を行うかどうかの従来の動作を維持するために用意されています。
[5] IDNA2003 では ToASCII 演算や ToUnicode 演算で UseSTD3ASCIIRules フラグが使われています。
[3] この「STD 3 の制約」というのが何を指すのかあまりはっきりとは書いてありませんが、 ToASCII 演算の定義によれば LDH でないASCII文字を排除することを指すようです。
[7] ToASCII 演算では、このフラグが設定されていれば、 LDH でないASCII文字が含まれていると失敗とみなされます。
[8] ToUnicode 演算では、このフラグが設定されていれば、 LDH でないASCII文字が含まれていると元の入力と同じものが出力となります。
[10] UTS #46 でも IDNA2003 と同じく UseSTD3ASCIIRules フラグがあります。このフラグは真に設定することが強く推奨されています >>4。
[11] このフラグが真に設定されているか否かによってIDNA写像表の定義が変わります。 (IDNA写像表の項を参照。)
[14] IDNA2008 では導出特性値やUラベルとAラベルの定義上、結果的に UseSTD3ASCIIRules フラグが設定された状態に相当するようになっている模様です。
_
など LDH 以外の文字の使用を認めることを指している模様です。 必ずしもすべてのASCII文字を認めることは意味しておらず、 ToUnicode や ToASCII の外側で実装依存な制約が課されるのが普通です。