在遗产中找到:
somevar.encode('utf-8').decode('utf-8')
当不试图捕获编码错误时,我们能否发现这种结构很有用?
答案 0 :(得分:2)
Python 2.7.6解释器中的实验:
a = u"string"
a
输出:u' string'
b = a.encode('utf-8').decode('utf-8')
b
输出:u' string'
b = a.decode('utf-8').encode('utf-8')
b
输出:'字符串'
a = "string"
a
输出:'字符串'
b = a.encode('utf-8').decode('utf-8')
b
输出:u' string'
b = a.decode('utf-8').encode('utf-8')
b
输出:'字符串'
请注意,无论原始字符串是否为Unicode,编码的输出 - > decode将是一个Unicode字符串。解码的输出 - > encode不是unicode字符串。但是,一个简单的注意事项是,由于字符串是不可变的,所以除了检查Unicode错误之外,发布它的代码行也没用,因为它没有捕获函数调用的返回值。
编码的唯一真正效果 - > decode构造是通过它传递的所有字符串(并从返回中捕获)将是Unicode字符串。为什么你要这样做而不是unicode_string = unicode(normal_string, encoding='UTF-8')
我不知道。