使用Python 2.x中的Unicode和Utf-8代码解码字符串

时间:2015-11-26 20:11:33

标签: unicode encoding utf-8

假设我们有一个字符串:

s = '\xe5\xaf\x92\xe5\x81\x87\\u2014\\u2014\xe5\x8e\xa6\xe9\x97\xa8'

两个符号'—',其Unicode为\u2014,在UTF-8中未正确编码为'\xe2\x80\x94'。是否有一种简单的方法来解码这个字符串?它应解码为寒假——厦门

手动使用替换功能正常:

t = u'\u2014'
s.replace('\u2014', t.encode('utf-8')
print s

但是,它不是自动的。如果我们提取Unicode,

index = s.find('\u')
t = s[index : index+6]

然后t = '\\u2014'。如何将其转换为UTF-8代码?

1 个答案:

答案 0 :(得分:0)

您在replace()

中遗漏了额外的斜杠

应该是:

s.replace("\\u2014", u'\u2014'.encode("utf-8") )

在问题的评论中检查我的警告。你不应该在这种情况下结束。