关于python:utf-8编码和希腊字符

utf-8 encoding and greek characters

本问题已经有最佳答案,请猛点这里访问。

当我设法获得我需要的所有数据并将其保存在一个cv文件中时,我得到的输出是utf-8格式,这是正常的(如果我错了,请纠正我)。

tbh我已经"播放"了.encode()和.decode()选项,没有任何结果。

这是我的密码

1
brands=[name.text for name in Unibrands]

这是输出

1
u'Spirulina \u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ae'

这是期望的输出

1
u'Spirulina Ελληνικ?'


这个字符串已经很好了;您看到的是它的repr,它确实转义了某些字符,因为这样可以安全地直接复制和粘贴到python源代码中(在python 2.x中意味着它只需要有可打印的ASCII字符),例如,\u0395表示代码点U+0395希腊大写字母epsilon。您看到它的这种形式是因为打印一个列表(或其他容器)总是显示它的内容的repr--如果您直接使用print--字符串,则应该看到一个适当的glyph而不是转义形式:

1
2
>>> print(u'Spirulina \u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ae')
>>> 'Spirulina Ελληνικ?'

您还可以考虑升级到更新的python版本;python 3.5(以及可能更早的3.x版本)不再在repr中转义这些字母,因为python现在默认接受源文件中的Unicode字符。