我从数据库中获取以下字符串:
'23:45 \xe2\x80\x93 23:59'
,输出应该看起来像
'23:45 - 23:59'
我该如何解码?我试过utf-8解码但没有运气
>>> x.decode("utf-8")
u'23:45 \u2013 23:59'
谢谢
答案 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,然后导入它。 我已经尝试过了,它运行良好。 希望它有所帮助!