字符编码 - 从网络复制/粘贴

时间:2013-04-18 15:36:44

标签: utf-8 python-3.x ansi

这是一个关于字符编码的教育问题(业余爱好者编码器) - 但我遇到了这个具体问题:

1)我在python 3中编写了一个愚蠢的程序,在编辑器中我使用的是UTF-8(这里是德语键盘)。

2)与感兴趣的家庭成员分享我的“创作”...我将代码粘贴到私人Pastebin.com(附带说明:将文件复制/粘贴(原始)文件并将文件扩展名更改为。 PY)

麻烦开始了:

3)遵循这些说明将不允许运行该程序。

4)我不确定为什么它不起作用,但由于字符编码现在是ANSI我知道这是问题所在。在代码编辑器中将编码更改回UTF-8可以解决问题。

问题是:

a)为什么会改为ANSI?

b)为什么它在ANSI中无论如何都不起作用(因为整个代码看起来都是一样的)

c)如何保存UTF-8编码?我的意思是:我的家人不知道如何更改编码...(我知道......只是发送给他们可执行文件。但正如我所说的......教育)

编辑:澄清python-3.x版本

1 个答案:

答案 0 :(得分:1)

当他们将文本粘贴到编辑器并按下保存时,就会出现问题。保存时,您必须指定编码,或者受某些默认值的限制,例如“ANSI”。如果不使用某种编码,则无法保存文本文件。

它可能无效,因为您已在文件中声明# -*- coding: utf-8 -*-,文本编辑器将文件保存在“ANSI”中并不知道这一点并保留原样。因此解析器将尝试将文件读取为UTF-8并失败,因为它不是UTF-8。

您可以在源代码中对非ASCII字符使用\uxxxx转义。

所以而不是:

str = u"€"

str = u"\u20AC"