我可以将所有域名视为IDN而不会产生任何不良影响吗?

时间:2016-05-14 17:28:13

标签: internationalization domain-name idn punycode

从测试开始,似乎尝试转换IDN和常规域名“只是工作”。 - 例如,如果输入不需要更改,punycode将只返回输入。

punycode.toASCII('lancôme.com');

返回:

'xn--lancme-lxa.com'

punycode.toASCII('apple.com');

返回:

'apple.com'

这看起来不错,但它是否在任何地方指定? 我可以安全地将所有内容转换为punycode吗?

1 个答案:

答案 0 :(得分:2)

这是正确的。如果您查看将unicode字符串转换为ascii punycode的过程,该过程只会更改任何非ascii字符。由于常规域不能包含非ascii字符,如果正确实现了转换器,它将永远不会转换任何pure-ascii字符串。

您可以在此处详细了解如何将unicode转换为punycode:https://en.wikipedia.org/wiki/Punycode

Punycode在RFC 3492中指定:https://www.ietf.org/rfc/rfc3492.txt,它清楚地说:

  

"基本代码点隔离"是一个非常简单的      对扩展中出现的基本代码点进行有效编码      string:只需一次复制它们。

因此,如果您的扩展字符串由基本代码点组成,则只会在不更改的情况下进行复制。