我目前正在使用 Python 2.7 解析大型文本文件,其中一些文件最初是用 Unicode 或 UTF-8 编码的。
对于包含直接与 UTF-8 字符串交互的函数的模块,我在文件顶部包含了 # -*- coding: utf-8 -*-
,但对于有效的函数只有 ascii,我没有打扰。
最终,这些模块会导致更大的模块,并且所有已解析的字符串都混合在一起。在每个文件的顶部包含 # -*- coding: utf-8 -*-
是好的做法吗?
这样做有好处吗?
最佳答案
# -*- coding: utf-8 -*-
声明源文件的编码仅。它与 Python 处理输入或输出的方式无关。这只是意味着您可以使用 UTF-8 编写字符串文字和注释。
这是编码声明的效果。假设我有一个程序
# -*- coding: utf-8 -*-
# the following prints the Dutch word "één"
print(u"\xe9\xe9n")
这正是评论所说的。但是如果我删除 coding
声明,它就会崩溃:
File "a.py", line 1
SyntaxError: Non-ASCII character '\xc3' in file a.py on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
请注意,第 1 行是评论。该程序可以通过删除评论来修复,只留下
print(u"\xe9\xe9n")
它的行为仍然与第一个程序完全相同。
关于python - 混合使用 UTF-8 和 ASCII 编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11029721/