使用其他字符在UTF-8输出中编码正负符号

时间:2018-10-22 13:38:16

标签: python string python-2.7 unicode

我试图在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中编码符号(例如正负),而无需其他符号?

1 个答案:

答案 0 :(得分:0)

我找到了问题的根本原因。这是由于我使用的终端具有'iso-8859-15'编码引起的。更改python中使用的编码以匹配终端编码可解决此问题,并正确输出±