python2.0 默认编码错误:SyntaxError: Non-ASCII character ‘\xe5’
python2.0 和 python3.0 默认编码区别
python2.0
:默认采用ASCII 编码
对输入的字符串进行编码- 默认不支持中文字符编码
python3.0
:默认采用Unicode 编码
对字符串进行编码- 默认支持中文字符编码
使用 python2.0 代码中使用中文字符出现的编码错误
由于 python2.0
默认采用 ASCII 编码
对输入的字符串进行编码,如果代码文件中出现了非 ASCII 字符(例如中文字符),则无法正确进行编码,会出现报错信息:SyntaxError: Non-ASCII character '\xe5'
例如:
- 字符串中使用中文字符
print '廊坊吴彦祖'
- 注释中使用中文字符
# 廊坊吴彦祖 print 'langfangwuyanzu'
报错信息:
SyntaxError: Non-ASCII character '\xe5' in file a.py on line 1, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
解决方法
使用 python2.0
时需要在文件的开头声明该文件所采用的编码方式:UTF-8
UTF-8
:是一种可变长度的 Unicode 编码方式,可以表示 Unicode 字符集中的任意字符,包括中文字符,是在互联网上使用最广的一种 Unicode 的实现方式
将以下声明代码添加到文件源代码的开头
# -*- coding: UTF-8 -*-
或者
#coding=utf-8
注意:如果文件第一行是指定解释器路径代码(例如:#!/usr/bin/python),以上声明代码需要添加到指定解释器路径代码的下一行
例如:
- 字符串中使用中文字符
# -*- coding: UTF-8 -*- print '廊坊吴彦祖'
- 注释中使用中文字符
#coding=utf-8 # 廊坊吴彦祖 print 'langfangwuyanzu'