Python的编码注释【转】
格式有多种,但必须有coding:[编码]或者coding=[编码],如:
# -*- coding:utf-8 -*-
# coding:utf-8
# coding=utf-8
转自:https://blog.csdn.net/weiwangchao_/article/details/70597673
如果要在python2的py文件里面写中文,则必须要添加一行声明文件编码的注释,否则python2会默认使用ASCII编码。
问题就来了,为什么要如此声明?
首先请参考Python的PEP http://www.python.org/dev/peps/pep-0263/
概要如下
1.必须将编码注释放在第一行或者第二行
2.可选格式有
# coding=<encoding name>
-----------------------------------------------
#!/usr/bin/python
# -*- coding: <encoding name> -*-
-----------------------------------------------
#!/usr/bin/python
# vim: set fileencoding=<encoding name> :
-----------------------------------------------
但是再往下看,发现其实只要注释里面有coding 和对应的编码就可以了,例如
#!/usr/bin/python
# vim: set fileencoding=<encoding name> :
所以搞了半天对最标准的做法也有点糊涂了。
后来想了想,看了下VIM中对python的语法高亮文件,里面把如下的正则表达式确定为编码声明
\%^.*\?#.*coding[:=]\s*[0-9A-Za-z-_.]\+.*$
对于这个正则有些有点看不懂,但是大致如下必须有coding:[编码]或者coding=[编码]才行,这个应该可以视作为标准的声明方式吧。
但是为什么通常这种方式呢?
# -*- coding:utf-8 -*-
答案在PEP-0263里面有所提及,那就是Emacs等编辑器使用这种方式进行编码声明。
话说PEP里面很多东西都是很值得参考的毕竟可以知道为什么程序这样设计。
相关参考
PEP-0263
http://www.python.org/dev/peps/pep-0263/
vim语法文件编写总结
http://www.cnblogs.com/kohpoll/archive/2012/08/04/2623483.html
# -*- coding: UTF-8 -*- 这是个注释吗?
http://bbs.chinaunix.NET/thread-590066-1-1.html
Python的编码注释【转】的更多相关文章
- Python的编码注释# -*- coding:utf-8 -*-
# -*- coding:utf-8 -*-的主要作用是指定文件编码为utf-8, 因为一般默认的是ASCII码,如果要在文件里面写中文,运行时会出现乱码,加上这句之后会把文件编码强制转换为utf-8 ...
- 如何在Python 中使用UTF-8 编码 && Python 使用 注释,Python ,UTF-8 编码 , Python 注释
如何在Python 中使用UTF-8 编码 && Python 使用 注释,Python ,UTF-8 编码 , Python 注释 PIP $ pip install beauti ...
- python 之编码问题详解
前在一个项目中遇到用post提交一个xml,xml中含有中文,对于单独的py文件,使用urllib2.urlopen完全ok,但在django中使用就一直报编码错误,然后在网上看到这篇文章不错,决定m ...
- Python字符编码以及循环机制介绍
Python字符编码以及循环机制介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 身为一名运维人员就得不断的学习,那么如何身为运维的你是否已经嗅探已经很火的Python编程啦?大 ...
- Python代码编码规范
目录 1. Introduction 介绍 2. A Foolish Consistency is the Hobgoblin of Little Minds 尽信书,则不如无书 3. Code la ...
- 转1:Python字符编码详解
Python27字符编码详解 声明 一 字符编码基础 1 抽象字符清单ACR 2 已编码字符集CCS 3 字符编码格式CEF 31 ASCII初创 311 ASCII 312 EASCII 32 MB ...
- 【翻译】Python PEP8编码规范(中文版)
原文链接:http://legacy.python.org/dev/peps/pep-0008/ item detail PEP 8 Title Style Guide for Python Code ...
- python语法:注释
Python语法:注释 python语言中的注释是来帮助程序员理解并读懂代码内容的文字.当然,注释不仅在python语言中是这个作用,在其他语言中也几乎一样. python注释的生成方式 所有演示 ...
- python快速生成注释文档的方法
python快速生成注释文档的方法 今天将告诉大家一个简单平时只要注意的小细节,就可以轻松生成注释文档,也可以检查我们写的类方法引用名称是否重复有问题等.一看别人专业的大牛们写的文档多牛多羡慕,不用担 ...
随机推荐
- Python Django 获取表单数据的三种方式
# In viewsdef zbsservice(request): #返回一个列表 v1 = models.Business.objects.all() # .value返回一个字典 v2 = mo ...
- 安装php扩展redis (windows环境)
首先十分感谢网络上支持开源分享的前辈们,资源真的太丰富了,虽然也有许多优秀的国外资源被墙了... 想要给php增加redis扩展第一步当然要知道自己使用的php版本以及一些配置.查看 phpinfo ...
- 关于HSTS的总结
访问http网站,和服务器交互的步骤浏览器向服务器发起一次HTTP请求服务器返回一个重定向地址浏览器在发送一次HTTPS请求,得到最终内容 上面浏览器发送http请求后容易被拦截,使用HSTS后可以避 ...
- SSRS 报表开发小技巧
说明: 开发工具为: SQL Server Data Tools (英文版) 开发环境为: SQL Server 2012 (英文版) 一. 饼图数据外部显示 首先我们来看3张效果图: 内部 ...
- Arcengine编辑代码
using System; using System.Drawing; using System.Collections; using System.ComponentModel; using Sys ...
- mysql 5.7数据库支持emoji符号但是程序总算报错Incorrect string value: '\xF0\x9F\x98\x84\xF0\x9F...' for column ...
1.线上碰到个问题,端上切换搜狗输入法后,原来限制的表情符号还能输入.数据库使用的是5.7.22版本的,刚开始以为数据库不支持表情符号导致的,但是看了线上的数据库以及字段,都是支持的. show va ...
- Eigen学习笔记2-Matrix类
在Eigen中,所有的矩阵Matrix和向量Vector都是由Matrix类构造的.向量只不过是矩阵的特殊形式,只有一列(列向量)或者一行. Matrix模板类有6个参数,其中前三个参数是必须的.前三 ...
- 转:.net设计模式之单例模式
原文地址:http://terrylee.cnblogs.com/archive/2005/12/09/293509.html 概述 Singleton模式要求一个类有且仅有一个实例,并且提供了一个全 ...
- MATLAB 正则表达式(一)(转)
http://blog.sina.com.cn/s/blog_53f29119010009uf.html 正则表达式这个词上大学的时候就听同寝室的一个家伙常念叨——那家伙当然很厉害啦,现在已经发洋财去 ...
- 实践和感悟 - scala向下转型和减少穷举
工作中的问题总结: 问题一:scala 之向下转型 引言:假如在复杂的业务逻辑中,变量的类型不能确认,只能给个接口类型,这样数据类型推导不会错误,但是后面要使用实现类的类型时,你却发现转不过来了? 对 ...