格式有多种,但必须有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的编码注释【转】的更多相关文章

  1. Python的编码注释# -*- coding:utf-8 -*-

    # -*- coding:utf-8 -*-的主要作用是指定文件编码为utf-8, 因为一般默认的是ASCII码,如果要在文件里面写中文,运行时会出现乱码,加上这句之后会把文件编码强制转换为utf-8 ...

  2. 如何在Python 中使用UTF-8 编码 && Python 使用 注释,Python ,UTF-8 编码 , Python 注释

    如何在Python 中使用UTF-8 编码 && Python 使用 注释,Python ,UTF-8 编码 , Python  注释 PIP $ pip install beauti ...

  3. python 之编码问题详解

    前在一个项目中遇到用post提交一个xml,xml中含有中文,对于单独的py文件,使用urllib2.urlopen完全ok,但在django中使用就一直报编码错误,然后在网上看到这篇文章不错,决定m ...

  4. Python字符编码以及循环机制介绍

    Python字符编码以及循环机制介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 身为一名运维人员就得不断的学习,那么如何身为运维的你是否已经嗅探已经很火的Python编程啦?大 ...

  5. Python代码编码规范

    目录 1. Introduction 介绍 2. A Foolish Consistency is the Hobgoblin of Little Minds 尽信书,则不如无书 3. Code la ...

  6. 转1:Python字符编码详解

    Python27字符编码详解 声明 一 字符编码基础 1 抽象字符清单ACR 2 已编码字符集CCS 3 字符编码格式CEF 31 ASCII初创 311 ASCII 312 EASCII 32 MB ...

  7. 【翻译】Python PEP8编码规范(中文版)

    原文链接:http://legacy.python.org/dev/peps/pep-0008/ item detail PEP 8 Title Style Guide for Python Code ...

  8. python语法:注释

    Python语法:注释  python语言中的注释是来帮助程序员理解并读懂代码内容的文字.当然,注释不仅在python语言中是这个作用,在其他语言中也几乎一样. python注释的生成方式  所有演示 ...

  9. python快速生成注释文档的方法

    python快速生成注释文档的方法 今天将告诉大家一个简单平时只要注意的小细节,就可以轻松生成注释文档,也可以检查我们写的类方法引用名称是否重复有问题等.一看别人专业的大牛们写的文档多牛多羡慕,不用担 ...

随机推荐

  1. 中小型研发团队架构实践七:集中式日志ELK

    一.集中式日志 日志可分为系统日志.应用日志以及业务日志,系统日志给运维人员使用,应用日志给研发人员使用,业务日志给业务操作人员使用.我们这里主要讲解应用日志,通过应用日志来了解应用的信息和状态,以及 ...

  2. bzoj1061 NOI2018 志愿者招募——solution

    Description 申奥成功后,布布经过不懈努力,终于成为奥组委下属公司人力资源部门的主管.布布刚上任就遇到了一个难 题:为即将启动的奥运新项目招募一批短期志愿者.经过估算,这个项目需要N 天才能 ...

  3. 简易的canvas画板

    没事仿照windows画板工具用canvas实现了一个简易版的画板. html: <!doctype html> <html> <head> <meta ch ...

  4. JavaSE——转换流和缓冲流

    转换流: 类 InputStreamReader(字符输入转换流): InputStream 即读取字节流,Reader 为读取字符流. InputStreamReader将字节流转换成字符流.便于一 ...

  5. cocos2d-x学习笔记--第一天记录

    1.环境安装 http://www.cocos2d-x.org/ ---下载2.2.3--解压 https://www.python.org/ ---2.7.6 系统环境变量 设置安装目录 2创建一个 ...

  6. 拖拽进度条(SeekBar)

    拖拽进度条(SeekBar) 监听方法:setOnSeekBarChangeListener 监听器:SeekBar.OnSeekBarChangeListener 简单,直接上代码: 1.Activ ...

  7. web 学习资源

    学习 https://skills.bugbank.cn/ https://github.com/JnuSimba/MiscSecNotes 靶场 http://skysec.top/2018/01/ ...

  8. Nested Prefab Mode 嵌套预制体 保存问题 Dirty

    Unity2018.3 Nested Prefab Mode 嵌套预制体 Unity2018.3开始,新增了一个Prefab Mode,俗称嵌套预制体,在Prefab里套Prefab.实际应用中多少会 ...

  9. Oracle EBS GL 创建会计科目

    SELECT ct.trx_number ,l.accounting_class_code ,l.entered_dr ,l.entered_cr ,fnd_flex_ext.get_segs('SQ ...

  10. 使用innodb_ruby探查Innodb索引结构

    使用innodb_ruby探查Innodb索引结构 innodb_ruby 是使用 Ruby 编写的 InnoDB 文件格式解析器.innodb_ruby 的目的是暴露一些其他隐藏的 InnoDB 原 ...