这是一个关于字符编码的教育问题(业余爱好者编码器) - 但我遇到了这个具体问题:
1)我在python 3中编写了一个愚蠢的程序,在编辑器中我使用的是UTF-8(这里是德语键盘)。
2)与感兴趣的家庭成员分享我的“创作”...我将代码粘贴到私人Pastebin.com(附带说明:将文件复制/粘贴(原始)文件并将文件扩展名更改为。 PY)
麻烦开始了:
3)遵循这些说明将不允许运行该程序。
4)我不确定为什么它不起作用,但由于字符编码现在是ANSI我知道这是问题所在。在代码编辑器中将编码更改回UTF-8可以解决问题。
问题是:
a)为什么会改为ANSI?
b)为什么它在ANSI中无论如何都不起作用(因为整个代码看起来都是一样的)
c)如何保存UTF-8编码?我的意思是:我的家人不知道如何更改编码...(我知道......只是发送给他们可执行文件。但正如我所说的......教育)
编辑:澄清python-3.x版本
答案 0 :(得分:1)
当他们将文本粘贴到编辑器并按下保存时,就会出现问题。保存时,您必须指定编码,或者受某些默认值的限制,例如“ANSI”。如果不使用某种编码,则无法保存文本文件。
它可能无效,因为您已在文件中声明# -*- coding: utf-8 -*-
,文本编辑器将文件保存在“ANSI”中并不知道这一点并保留原样。因此解析器将尝试将文件读取为UTF-8并失败,因为它不是UTF-8。
您可以在源代码中对非ASCII字符使用\uxxxx
转义。
所以而不是:
str = u"€"
做
str = u"\u20AC"