我试图在python 2.7中对两个数字之间的正负符号进行编码(例如10±8.9)。
通过查看python文档,我发现我需要使用UTF-8而不是标准ASCII编码正负符号。
这是一个简短的示例,突出显示了我发现的问题,并从Wikipedia中获取Unicode值的正负值
plusminus = u'\u00b1'
print(plusminus) #All seems fine, but this is in ASCII format
±
plusminus.encode('utf-8') #Two symbols are outputted. This is strange!
'\xc2\xb1'
print(a.encode('utf-8')) #Yep. two symbols were encoded from one Unicode
±
print(u'\xb1') #Parital solution is to accept latter symbol
±
即使我通过采用后一个符号解决了这个问题(分类),但编码会输出两个符号似乎很奇怪。我以为我在这里做错了什么,但是我找不到其他发生这种情况的例子。
这是我的问题:
1)我在这里做什么错了?
2)有没有一种方法可以直接在UTF-8中编码符号(例如正负),而无需其他符号?
答案 0 :(得分:0)
我找到了问题的根本原因。这是由于我使用的终端具有'iso-8859-15'编码引起的。更改python中使用的编码以匹配终端编码可解决此问题,并正确输出±。