我有一些无法解码的IDNA编码字符串。在Python中,我尝试使用u"xn--grohandel-shop-2fb".decode("idna")
,但是出现了错误“IDNA不往返”。对于"xn--sottmqqo5-lgbe9b7no0hmz9u"
也是如此。
我很困惑,谷歌搜索这个错误也没有任何帮助。
toUnicode
。在那里,文本被解码,但在返回结果之前,它对结果进行编码并与输入进行比较,如果不同则引发错误:“它不是一个完整循环”,即encode(decode(text))!= text
。在错误消息中,您还可以获得尝试比较的两个字符串,在第一个示例中,您会得到:
UnicodeError: ('IDNA does not round-trip', 'xn--grohandel-shop-2fb', 'grosshandel-shop')
ß
转换成了“grosshandel-shop”中的ss
。2010年后,ß
字符被添加到了.de
-tld中,所以这是一个错误。在这个变化之前,ß
应该被改成ss
。
你提供的第二个例子可能已经损坏,因为它转换成了:“đsottĤmqĐqǗoĔ⢠5”。