编码声明:是coding:utf-8还是coding=urf-8
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编码声明:是coding:utf-8还是coding=urf-8相关的知识,希望对你有一定的参考价值。
都可以,没有声明其他编码方法,即使用ascii编码作为标准编码方法。
要定义源文件的编码方式,应在文件的第一行或第二行中放置声明,例如:
[python] view plain copy
#coding=<encoding name>
或者(使用流行编辑器中的格式化方式)
[python] view plain copy
#!/usr/bin/python
# -*- coding: <encoding name> -*-
或者
[python] view plain copy
#!/usr/bin/python
# vim: set fileencoding=<encoding name> :
扩展资料:
执行python时,.py文件中的源代码首先编译成python的字节码,然后由python虚拟机执行编译后的字节码。该机制的基本思想与Java、.NET相一致。
但是,与Python虚拟机和Java或.NET虚拟机不同,Python的虚拟机是一种更高级的虚拟机。
这里的高级不是一般意义上的高级。不是Python的虚拟机比Java或.NET更强大,但是Python的虚拟机比Java或.NET更远离真实的机器。
或者这样说,python的虚拟机是一个更高层次的抽象虚拟机。由基于c的python编译的字节码文件,通常采用.pyc格式。
此外,python还可以在交互模式下运行。例如,主流操作系统unix/linux、mac和windows可以直接以命令模式运行python交互环境。互操作性可以通过直接发出操作命令来实现。
参考资料来源:百度百科-Python
#coding=<encoding name>
或者(使用流行编辑器中的格式化方式)
#!/usr/bin/python
# -*- coding: <encoding name> -*-
或者
#!/usr/bin/python
# vim: set fileencoding=<encoding name> :
不管怎么样,这些在第一行或者第二行的声明都要符合正则表达式
[python] view plain copy print?
"coding[:=]\s*([-\w.]+)" 参考技术B 我们知道在Python源码的头文件中要声明编码方式,如果你不只是会用到ascii码,很多人都写得都有点差别:
#coding=utf-8
#coding:utf-8
#-*- coding:utf-8 -*-
那么怎样写才是有效地呢,哪些优势无效的呢?
可以查看下http://www.python.org/dev/peps/pep-0263/的解释
粗略的看下:
概要:
这个PEP的目的是介绍在一个Python源文件中如何声明编码的语法。随后Python解释器会在解释文件的时候用到这些编码信息。最显著的是源文件中对Unicode的解释,使得在一个能识别Unicode的编辑器中使用如FUT-8编码成为可能
怎么声明呢?如果在Python中我们并没有声明别的编码方式,就是以ASCII编码作为标准编码方式的
为了定义源文件的编码方式,一个魔法是的声明应当被放在这个文件的第一行或者是第二行例如: #coding=<encoding name>或者(使用流行编辑器中的格式化方式) #!/usr/bin/python
# -*- coding: <encoding name> -*-或者 #!/usr/bin/python
# vim: set fileencoding=<encoding name> :不管怎么样,这些在第一行或者第二行的声明都要符合正则表达式 "coding[:=]\s*([-\w.]+)"所以我们就可以知道为什么使用冒号或者等号都可以了,如果声明的编码python不能识别就会报错
Examples These are some examples to clarify the different styles for
defining the source code encoding at the top of a Python source
file:
1. With interpreter binary and using Emacs style file encoding
comment:
#!/usr/bin/python
# -*- coding: latin-1 -*-
import os, sys
...
#!/usr/bin/python
# -*- coding: iso-8859-15 -*-
import os, sys
...
#!/usr/bin/python
# -*- coding: ascii -*-
import os, sys
...
2. Without interpreter line, using plain text:
# This Python file uses the following encoding: utf-8
import os, sys
...
3. Text editors might have different ways of defining the file's
encoding, e.g.
#!/usr/local/bin/python
# coding: latin-1
import os, sys
...
4. Without encoding comment, Python's parser will assume ASCII
text:
#!/usr/local/bin/python
import os, sys
...
5. Encoding comments which don't work:
Missing "coding:" prefix:
#!/usr/local/bin/python
# latin-1
import os, sys
...
Encoding comment not on line 1 or 2:
#!/usr/local/bin/python
#
# -*- coding: latin-1 -*-
import os, sys
...
Unsupported encoding:
#!/usr/local/bin/python
# -*- coding: utf-42 -*-
import os, sys
...
以上几个例子充分说明了哪些是正确的写法,哪些是正确的写法本回答被提问者和网友采纳 参考技术C
都可以,没有声明别的编码方式,就是以ASCII编码作为标准编码方式。
为了定义源文件的编码方式,一个声明应当被放在这个文件的第一行或者是第二行例如:
[python] view plain copy
#coding=<encoding name>
或者(使用流行编辑器中的格式化方式)
[python] view plain copy
#!/usr/bin/python
# -*- coding: <encoding name> -*-
或者
[python] view plain copy
#!/usr/bin/python
# vim: set fileencoding=<encoding name> :
不管怎么样,这些在第一行或者第二行的声明都要符合正则表达式。
[python] view plain copy
"coding[:=]\\s*([-\\w.]+)"
所以我们就可以知道为什么使用冒号或者等号都可以了,如果声明的编码python不能识别就会报错。
扩展资料:
Python在执行时,首先会将.py文件中的源代码编译成Python的byte code(字节码),然后再由Python Virtual Machine(Python虚拟机)来执行这些编译好的byte code。这种机制的基本思想跟Java,.NET是一致的。
然而,Python Virtual Machine与Java或.NET的Virtual Machine不同的是,Python的Virtual Machine是一种更高级的Virtual Machine。
这里的高级并不是通常意义上的高级,不是说Python的Virtual Machine比Java或.NET的功能更强大,而是说和Java 或.NET相比,Python的Virtual Machine距离真实机器的距离更远。
或者可以这么说,Python的Virtual Machine是一种抽象层次更高的Virtual Machine。基于C的Python编译出的字节码文件,通常是.pyc格式。
除此之外,Python还可以以交互模式运行,比如主流操作系统Unix/Linux、Mac、Windows都可以直接在命令模式下直接运行Python交互环境。直接下达操作指令即可实现交互操作。
参考资料来源:百度百科-Python
python_2 python的编码声明
1 python默认使用ASCII进行编码,如果在.py中有中文需要,在执行时会报错。
2 解决办法, 在文件顶部进行编码声明
# -*- coding: utf-8 -*-
3 ascii/uni-code/utf-8三种编码
ascii码用8个bit表示,支持对英文的编码;
unicode用16个bit表示,支持对世界各个语言以及符号进行表示;
utf-8 是unicode升级版,(即,所有的英文还是用ascii的形式去存储,其它国际语言用unicode去存储)。utf-8是一种可变长的编码格式,在不需要字节改为时,可是省略高位的0,从而节省内存空间。
以上是关于编码声明:是coding:utf-8还是coding=urf-8的主要内容,如果未能解决你的问题,请参考以下文章
Python的编码注释# -*- coding:utf-8 -*-