Skip to main content
 首页 » 编程设计

python之混合使用 UTF-8 和 ASCII 编码

2025年05月04日12lexus

我目前正在使用 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") 

它的行为仍然与第一个程序完全相同。