1

MSDN 建议

getaddrinfo 函数是提供从主机名到地址的独立于协议的转换的函数的 ANSI 版本。此函数的 Unicode 版本是 GetAddrInfoW。鼓励开发人员使用 GetAddrInfoW Unicode 函数而不是 getaddrinfo ANSI 函数。

鼓励是好的,但有什么理由这样做吗?我的意思是,主机名可以包含非 ansi 字符吗?如果是这样,这是 IPv6 独有的功能,还是 IPv4 主机名也可以包含 unicode 字符?

4

2 回答 2

3

微软只是试图让所有人远离 Ansi,仅此而已。他们建议对所有事情都使用 Unicode,尤其是因为 Windows 本身是基于 Unicode 的(并且已经使用了很长时间)。但是是的,正如 Jason 所说,主机名可以通过 Punycode 编码包含 Unicode 字符,这与现有的基于 Ansi 的 DNS 系统向后兼容。

于 2012-05-14T23:24:38.227 回答
2

DNS通过称为 Punycode 的编码方案支持所谓的“国际化域名”。所以是的,主机名可以包含 Unicode 字符。它与 IPv4 或 IPv6 无关,因为那是完全不同的网络协议。

于 2012-05-14T23:06:43.553 回答