使用IDNA库编码Unicode域名时出现b'...'格式,如何获取预期字符串?
解决IDNA编码后输出带
b''的问题 你看到的b'xn--espaol-zwa.com'是Python对bytes类型对象的默认打印格式,idna.encode()方法本身返回的就是bytes对象而非字符串。要得到纯Punycode格式的字符串,只需把bytes对象解码为ASCII字符串即可(Punycode仅包含ASCII字符)。
修改后的代码如下:
import idna encoded = idna.encode('español.com') print(encoded.decode('ascii'))
执行后输出:
xn--espaol-zwa.com
这样处理后,你依然可以用idna.decode()正常解析该字符串得到原域名español.com,完全不影响后续解码流程。
内容的提问来源于stack exchange,提问作者Mr Fett
相关产品推荐
相关产品推荐

