编码来自unicode的负号?蟒蛇

时间:2014-03-16 20:12:59

标签: python unicode

当我尝试从unicode编码Melt_0时,使用:

mp = Melt_0.encode('utf-8').strip()

mp最终成为:

¬ネメ123.37ᅡᅠᅡᄚC; ¬ネメ190.07ᅡᅠᅡᄚF; 149.78ᅡᅠK

我可以通过以下方式轻松解决此问题:

import re
re.sub(r'[^\w.]+', ' ', mp)

我得到了:

 123.37 C 190.07 F 149.78 K

唯一的问题是应该是-,当我将所有非字母数字输出时,它会被删除。如何保留- s?

1 个答案:

答案 0 :(得分:1)

您需要先纠正导致数据损坏的早期步骤,而不是编码:

>>> u'¬ネメ'
u'\uffe2\uff88\uff92'
>>> '\xe2\x88\x92'.decode('utf-8')
u'\u2212'
>>> print u'\u2212'
−
>>> unicodedata.name(u'\u2212')
'MINUS SIGN'

>>> u'ᅡᅠᅡᄚ'
u'\uffc2\uffa0\uffc2\uffb0'
>>> '\xc2\xa0\xc2\xb0'.decode('utf-8')
u'\xa0\xb0'
>>> print u'\xa0\xb0'
 °
>>> unicodedata.name(u'\xb0')
'DEGREE SIGN'