Python 解码字符串问题
我从数据库里得到了以下字符串:
'23:45 \xe2\x80\x93 23:59'
而输出应该看起来像这样:
'23:45 - 23:59'
我该怎么解码这个呢?我试过用utf-8解码,但没成功。
>>> x.decode("utf-8")
u'23:45 \u2013 23:59'
谢谢你
3 个回答
1
a="NOV–DEC 2011" (en-dash)
b=unidecode(a)
#output --> NOV-DEC 2011 (with hyphen)
你需要先安装 unidecode 这个库,然后再把它导入到你的代码里。我试过了,运行得很好。希望这对你有帮助!
1
一个“en dash”(短破折号)的UTF-8表示是十六进制的0xE2 0x80 0x93(也就是e28093),或者用u"\u2013"来表示。听起来你想把这个短破折号替换成ASCII的连字符(减号,0x2d),然后把它存储在一个变量里。这是可以的,但要注意,这样变量里存的字符和数据库里存的字符就不一样了,就像把一个Ü(http://www.fileformat.info/info/unicode/char/dc/index.htm)替换成ASCII的U,或者把数字0(0x30)替换成大写的O(0x4f)一样。
7
这完全正确。交互式的Python解释器显示的是字符串的repr()
形式。如果你想看到它作为一个正常的字符串,就用print
来输出它:
>>> print '23:45 \xe2\x80\x93 23:59'
23:45 – 23:59