在ipython(python 2.7)中使用这个最小的示例:
from matplotlib import pylab
unic = u'\xb0'
unicen = unic.encode('utf-8')
plt.plot([1,2],[3,4])
plt.xlabel(r'$\Delta$ [%s]'%(unicen), size='xx-large')
我收到一条很长的错误消息,其结尾是:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 10: ordinal not in range(128)
如果我打印unic、unicen或str(unicen),一切正常,这意味着matplotlib似乎无法处理编码。str(unic)会导致相同的错误,但是统一编码('utf-8')确实在打印消息中处理了它。在
我已经开始使用添加-utf-8-和unichr(0xB0),然后尝试了我找到的所有其他解决方案。事实上,统一编码另一个解决方案()失败了。我做错什么了?在
----------------------------------------编辑-----------------------------------
下面的答案是解决我上面的问题,但是当我尝试使用latex时会出现同样的错误,因此latex和matplotlib似乎不能正常工作。在
下面是导致此错误的简单脚本(已根据以下建议更正):
^{pr2}$
将传递给
xlabel
的字符串也定义为unicode:输出:
相关问题 更多 >
编程相关推荐