【发布时间】:2020-04-24 17:10:31
【问题描述】:
我似乎无法在生产服务器上获得 utf-8 字符的 unicode 表示,尽管它在开发工作站上运行良好。
当我在 linux(Ubuntu 服务器)上使用 Python 3.6.9 [GCC 8.3.0] 时。
>>> str('\u0394')
'\u0394'
>>>print('\u0394')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'latin-1' codec can't encode character '\u0394' in position 0: ordinal not in range(256)
当我在 darwin (Mac OS) 上使用 Python 3.6.5 [GCC 4.2.1] 时
>>> str('\u0394')
'Δ'
>>> print('\u0394')
Δ
从表面上看,我会说 ubuntu 服务器上有一些问题,因为 str() 应该在 Python 3 中转换为 unicode。但是,很可能是版本 3.6 中的工作方式有所不同。 9 w.r.t. 3.6.5。关于我如何深入了解这一点的任何提示?
【问题讨论】:
-
您缺少一个字符集来显示您想要的字符。这是配置您的 Ubuntu 系统和/或安装您需要的字符集的问题 - 更有可能只是安装 ttf 字体包将修复它。也许这会有所帮助:askubuntu.com/questions/689607/…
-
str('\u0394') 和 '\u0394' 完全一样。您的 查看器(终端)无法显示 Unicode 字符,仅支持 Latin1 字符集。
-
安装 ttf 字体没有帮助,但是您对 ubuntu 中字符集的评论使我得到了如下所述的修复。谢谢@Todd!
-
太棒了。很高兴你找到了解决办法。别客气。也许对问题标题的更新将帮助其他人找到在他们的 Ubuntu 发行版上遇到此问题的人。
标签: python-3.x ubuntu