假设我有一个包含以下内容的.py文件
print('(????)?????')
当被python3调用时,它打印出一个愤怒的家伙翻转一个表,但是在python2上我们得到SyntaxError
并需要# coding: utf-8
在文件中添加一个声明行来运行它.
我的问题是为什么python 3不关心非ascii字符?我在PEP 0263中没有看到任何描述.当我没有指定时,解释器如何正确地猜测文件的编码,记录的行为在哪里?
Python 3使用utf-8
默认的源代码编码.
Python 2 默认使用ASCII
,所以除非你# -*- coding: utf-8 -*-
在文件的顶部明确告诉Python ,否则它不知道如何处理127以上的字符值.