Found another issue in Safari 3, where the unescaping and
punycoding are done in the wrong order. Here's an example:
When you click on that link, Safari ends up sending the following
(wrong) domain name to DNS: xn--.com-9b5j
This is because Safari is first running the host name through IDNA to
get Punycode and *then* unescaping the %2e to get the dot. It should
first unescape the %2e to get the dot, and then separate the host name
into labels, and then run IDNA on the 1st label only, since it is
non-ASCII. The result should be xn--kkr.com. Both MSIE 7 and Opera 9
get this right, but Firefox gets it wrong, in a different way.
This bug may be more serious than the following, since it affects how
a hostname is divided into labels at each dot.
I suspect that both of these bugs would be fixed by a single check-in.
Can you put the HTML snippet you mentioned into an attachment on the bug? Bugzilla has a habit of mangling non-ASCII characters which makes it hard to decipher your original snippet.
Created attachment 18047 [details]
HTML snippet with %-escaped dot in host name