首页 > 解决方案 > 在树莓派上解码 utf-8

问题描述

我在树莓派上解码 utf-8 时遇到问题...相同的代码在我的计算机上工作。但不适用于覆盆子。有什么线索吗?

在我的笔记本电脑上(预期输出):

Python 3.5.3 (default, Sep 27 2018, 17:25:39) 
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> b'\xc3\xa9'.decode('utf-8')
'é'

在树莓派上(意外输出):

Python 3.5.4 (default, Sep  5 2017, 18:32:10) 
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> b'\xc3\xa9'.decode('utf-8')
'�'

标签: pythonlinuxraspberry-pipython-3.5

解决方案


不同之处在于两个系统上的区域设置。您可以通过以下方式在 python 中检查:

>>> import locale
>>> locale.getpreferredencoding()
UTF-8

您的一个系统应该报告UTF-8编码,另一个不报告编码(可能是ISO-8859-1相反)。在 Linux 上,检查locale命令的输出以检查差异,然后调整区域设置以匹配(通过localectlupdate-locale或您的发行版提供的任何内容)。


推荐阅读