python解码字符串问题

时间:2011-11-03 16:25:39

标签: python decoding

我从数据库中获取以下字符串:

'23:45 \xe2\x80\x93 23:59'  

,输出应该看起来像

'23:45 - 23:59'  

我该如何解码?我试过utf-8解码但没有运气

>>> x.decode("utf-8")
u'23:45 \u2013 23:59'

谢谢

3 个答案:

答案 0 :(得分:7)

这是完全正确的。交互式python解释器显示字符串的repr()。如果您想将其视为正确的字符串,print它:

>>> print '23:45 \xe2\x80\x93 23:59'
23:45 – 23:59

答案 1 :(得分:1)

“短划线”http://www.fileformat.info/info/unicode/char/2013/index.htm的UTF-8表示形式为十六进制0xE2 0x80 0x93(e28093)或u“\ u2013”​​。听起来你想用ascii连字符/减号(0x2d)替换en-dash字符以将其存储在变量中。没关系,但是变量不会包含与数据库中存储的相同的字符,比如果用ascii U替换Ü(http://www.fileformat.info/info/unicode/char/dc/index.htm),或用资本替换零(0x30) O(0x4f)。

答案 2 :(得分:1)

a="NOV–DEC 2011" (en-dash)
b=unidecode(a)

#output --> NOV-DEC 2011 (with hyphen)

您需要先安装unidecode,然后导入它。 我已经尝试过了,它运行良好。 希望它有所帮助!