Now, if the tilde character is currently used
in some fashion by behind the screens Internet
techs, as Paul suggested, then I can understand
why the tilde character is prohibited.
I'd like to point out that it was always the intention, and is the
existing practice, that the IDNA RFCs are augmented by policies of the
registrars, which further constrain the set of characters that you can
use within a particular zone.
To my knowledge, none of the TLD registrars currently allows
registration of names which contain TILDE OPERATOR. So for
one-below-toplevel, the entire issue is irrelevant.
Please tell me why mapping the tilde to the tilde operator wouldn't work.
Because it would not matter. Consider a domain label "foo~", and assume
we are applying the "ToAscii" function, trying to generate the IDNA
version of the label. Please follow me though chapter 4 of RFC 3490 now.
Further assume that UseSTD3ASCIIRules is true.
1. If the sequence contains any code points outside the ASCII range
(0..7F) then proceed to step 2, otherwise skip to step 3.
No, this label does not contain any code points outside the ASCII
range. So we proceed to step 3
3. If the UseSTD3ASCIIRules flag is set, then perform these checks:
(a) Verify the absence of non-LDH ASCII code points; that is, the
absence of 0..2C, 2E..2F, 3A..40, 5B..60, and 7B..7F.
UseSTD3ASCIIRules is true, so we check. The label contains a
non-LDH code point, so ToASCII fails.
Now, your proposal is that TILDE was mapped to TILDE OPERATOR.
That would have happened in step 2. However, according to the
specification, we have *skipped* step 2. Therefore, your mapping
approach wouldn't work, and ToASCII would fail.
Regards,
Martin