以下代码在我的Windows机器上使用Python3运行良好,并打印出字符' é ':
然而,在基于Ubuntu的Docker容器上运行相同操作会导致以下问题:
data = b"\xc3\xa9"
print(data.decode('utf-8'))
然而,在基于Ubuntu的Docker容器上运行相同操作会导致以下问题:
UnicodeEncodeError: 'ascii' codec can't encode character '\xe9' in position 0: ordinal not in range(128)
我需要安装什么软件才能启用utf-8解码?
LANG=C
的Linux系统来说,可能存在一些“最小化”的设置,导致出现问题的是print
而不是decode
。在相关的shell初始化文件中明确更改为LANG=en_US.utf-8
(并注销并重新登录以确保所有地方都正确设置了语言环境)应该可以解决这个问题。 - ShadowRanger