将Unicode中的负号编码?python
当我尝试从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
唯一的问题是,¬
本来应该是 -
,但是在我把所有非字母数字的字符去掉时,它被删除了。我该如何保留 -
呢?
1 个回答
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'