问题
1 | File "sms.py", line 8 |
解决办法
在Python 代码的首行以注释的方式加上代码的编码方式即可解决。
1 | # -*- coding: utf-8 -* |
PEP-0236
PEP 是Python Enhancement Proposals 的缩写。一个PEP 是一份为Python 社区提供各种增强功能的技术规格,也是提交新特性,以便让社区指出问题,精确化技术文档的提案。
而PEP-0236就是为了说明Python 代码的编码方式问题而提出,所以,在python官方建议中,有了PEP 0236 允许在Python 文件中,通过文件开始处放在注释中以字符串形式声明自己的python文件,用何种编码。
如果没有此文件编码类型的声明,则python默认以ASCII编码去处理。
如果你没声明编码,但是文件中又包含非ASCII编码的字符的话,python解析器去解析的python文件,自然就会报错了。
必须放在python文件的第一行或第二行!
支持的格式有三种:
- 带等于号的
1
# coding=<encoding name>
- 最常见的,带冒号的(大多数编辑器都可以正确识别的)
1
2#!/usr/bin/python
# -*- coding: <encoding name> -*- - VIM 的
1
2#!/usr/bin/python
# vim: set fileencoding=<encoding name> :