IDN主机标签中允许哪些Unicode字符?

Rol*_*sen 9 unicode tld idn

我目前正在研究一个"正确的"URI验证器,目前这一切都归结为主机名验证; 剩下的并不是那么棘手.

我坚持使用IDN主机名标签(即包含Unicode;此时已经解码了可能的punycode编码字符串).

我的第一个想法基本上是一个不支持IDN的TLD正则表达式,而那些支持IDN的一个正则表达式.这可能基于Mozilla的支持IDN的TLD列表.分别 ^[a-zA-Z0-9\-]+$^[a-zA-Z0-9\-\p{L}]+$.但是,这不是一个理想的情况,因为每个IDN注册商都可以决定允许哪些字符.

我正在寻找的是各种TLD中允许的Unicode字符的正确,一致,最新的数据表.现在看起来我必须在俄罗斯和中国的注册网站上找到所有数据(这非常困难).

所以在我尝试自己收集所有这些数据之前,我想知道这样的列表是否已经存在.或者有更好的方法,最佳/常见的做法等?(我希望验证尽可能严格.)

Byr*_*ock 1

您不能将所有 Unicode 域转换为 punycode 并验证它吗?由于 DNS 无论如何都不支持真正的 UTF-8 字符,这可能是最好的解决方案。