Defining Python Source Code Encodings定义python源代码的编码
来源:互联网 发布:陆羽茶经经典句子一知 编辑:程序博客网 时间:2024/06/08 07:48
概要
这个PEP建议引入一个语法来声明Python源文件的编码。 Python解析器将使用这个编码信息中给定的编码来解释文件。 最引人注意的是,这增强了源代码中Unicode字符的解释。
问题描述
在Python 2.1中,Unicode字符只能使用基于Latin-1的“unicode-escape”编码编写。 这对生活和工作在非Latin-1语言环境(如许多亚洲国家)的Python用户来说是不友好的。 程序员可以使用最喜欢的编码来编写他们的8位字符串,但是他们被绑定到非得使用“unicode-escape”来编码Unicode字符。
解决方案
我建议在python源代码文件顶部的使用特殊注释来声明编码,使Python源代码的编码在每个源文件的基础上可见和可变。
为了使Python解释器意识到这个编码声明,在处理Python源代码数据方面需要进行一些概念更改。
定义编码
如果没有给出其他编码提示,Python将默认将ASCII作为标准编码。
要定义源代码编码,必须将编码声明放在源文件中,或者作为文件中的第一行或第二行,例如:
# coding=<encoding name>
或(使用各种流行的编辑器都认可的格式):
#!/usr/bin/python# -*- coding: <encoding name> -*-or:#!/usr/bin/python# vim: set fileencoding=<encoding name> :
更准确地说,第一行或第二行必须与以下正则表达式相匹配:
^[ \t\v]*#.*?coding[:=][ \t]*([-_.a-zA-Z0-9]+)
此表达式的第一组然后解释为编码名称。 如果编码对于Python是未知的,编译过程中会出现错误。 在包含编码声明的行上不能有任何Python语句。 如果第一行匹配第二行被忽略。
为了帮助那些将Unicode BOM标记添加到Unicode文件的开头的操作系统,比如Windows的平台,,UTF-8签名\ xef \ xbb \ xbf也将被解释为’utf-8’编码(即使没有编码声明中 给出)。
如果源文件使用UTF-8 BOM标记签名和编码声明,则该文件的唯一允许的编码为“utf-8”。 任何其他编码都会导致错误。
- Defining Python Source Code Encodings定义python源代码的编码
- Defining Python Source Code Encodings
- Defining Python Source Code Encodings
- Defining Python Source Code Encodings
- PEP 0263 Defining Python Source Code Encodings
- PEP 0263 -- Defining Python Source Code Encodings
- PEP 263 - PEP 0263 -- Defining Python Source Code Encodings
- Python Source Code Encodings
- Python 定义源码编码 (Source Encoding)
- Python source编码设定
- Python源代码文件的文本编码
- python 编码定义
- Python的定义编码以及注释等
- Source Insight 的 Python 语言定义文件下载
- [Source Code] My First Python Program
- [偷懒:)]Python Source Code Encoding
- 【转载】用source insight 看python源代码
- 用source insight 看python源代码
- Laravel中间件
- PAT(乙级)1004
- android- API 级别
- Laravel使用Seeder自动填充数据
- 动态规划实例(七):01背包问题最大价值
- Defining Python Source Code Encodings定义python源代码的编码
- 九度 题目1352:和为S的两个数字
- 数组与指针的区别
- iOS开发进阶
- java.io.IOException: Unable to establish loopback connection
- Laravel的ORM入门
- 文本框获取焦点后出现的边框,怎么去掉
- ajax 利用formdata对象 实现多文件上传
- Angular控制器