的Python识别以下为指令定义文件的编码:哪里这个来自: - * - 编码:UTF-8 - * -
# -*- coding: utf-8 -*-
我绝对看到了这样的指令之前(-*- var: value -*-
)。它从何而来?什么是完整的规范,例如可以包含空格,特殊符号,换行符,甚至是-*-
本身?
我的程序将编写纯文本文件,我想在这些格式中包含一些元数据。
的Python识别以下为指令定义文件的编码:哪里这个来自: - * - 编码:UTF-8 - * -
# -*- coding: utf-8 -*-
我绝对看到了这样的指令之前(-*- var: value -*-
)。它从何而来?什么是完整的规范,例如可以包含空格,特殊符号,换行符,甚至是-*-
本身?
我的程序将编写纯文本文件,我想在这些格式中包含一些元数据。
这种指定Python文件编码的方式来自PEP 0263 - Defining Python Source Code Encodings。
它也被GNU Emacs认可(请参阅Python Language Reference, 2.1.4 Encoding declarations),尽管我不知道它是否是第一个使用该语法的程序。
这就是所谓的文件局部变量,Emacs可以理解并相应地设置。请参阅相应的section in Emacs manual - 您可以在文件的页眉或页脚中定义它们
在PyCharm中,我会将其忽略。它会关闭底部的UTF-8指示器,并显示编码为硬编码的警告。不要以为你需要上面提到的PyCharm评论。
这更容易记住,并在我的编辑器PyCharm中工作。 `#coding:utf-8` – crizCraig 2012-04-27 00:23:31
使用`#编码:utf8`开箱即用Python 2.7,即使在PyCharm之外。 (我使用SublimeText)。 – Basj 2018-02-23 14:48:39