你做了什么?
https://go.dev/play/p/YZC2LJAeSLm
你想看到什么结果?
结果与https://unicode.org/reports/tr46/#ToASCII一致
如果VerifyDnsLength标志为true,则验证DNS长度限制。
每个标签的长度为1到63。
profile.ToASCII(www..com.) = www..com. idna: invalid label "www..com."
profile.ToASCII(www..ćóḿ.) = www..xn--kda3b580m. idna: invalid label "www..ćóḿ."
profile.ToASCII(www.example..) = www.example.. idna: invalid label ""
profile.ToASCII(www.éxamplé..) = www.xn--xampl-9raf.. idna: invalid label ""
你看到了什么?
profile.ToASCII(www..com.) = www..com. idna: invalid label "www..com."
profile.ToASCII(www..ćóḿ.) = www..xn--kda3b580m. idna: invalid label "www..ćóḿ."
profile.ToASCII(www.éxamplé..) = www.xn--xampl-9raf.. idna: invalid label ""
4条答案
按热度按时间rhfm7lfc1#
CC @neild, @ianlancetaylor。
rwqw0loc2#
这可能是重复的#47182
cuxqih213#
感谢elliotwutingfeng指出问题来源。这解决了#47182中的空TLD与根标签的情况(
www.example.com..
),但实际上根标签也是不允许的(www.example.com.
):当VerifyDnsLength为true时,不允许空根标签。
所以我在原始帖子中犯了一个错误,输出应该是:
因此,这个问题和#47182都应该通过在VerifyDNSLength为true时禁止根标签来解决。这里是修正后的测试场景:https://go.dev/play/p/FvuwfgkvzqP
xdnvmnnf4#
感谢您的更新,我已经在golang/text#43上提交了PR来修复这个问题。