这是从哪里来的:-*- 编码:utf-8 -*-

     2023-02-21     236

关键词:

【中文标题】这是从哪里来的:-*- 编码:utf-8 -*-【英文标题】:Where does this come from: -*- coding: utf-8 -*- 【发布时间】:2011-06-19 19:27:24 【问题描述】:

Python 将以下指令识别为定义文件编码的指令:

# -*- coding: utf-8 -*-

我之前肯定看到过这种指令(-*- var: value -*-)。它从何而来?什么是完整规格,例如该值是否可以包含空格、特殊符号、换行符,甚至 -*- 本身?

我的程序将编写纯文本文件,我想使用这种格式在其中包含一些元数据。

【问题讨论】:

这更容易记住并且在我的编辑器 PyCharm 中工作。 # coding: utf-8 使用 # coding: utf8 在 Python 2.7 中开箱即用,即使在 PyCharm 之外也是如此。 (我使用 SublimeText)。 File local variable in Emacs、cookie in SciTE、Encoding declarations in Python 和 Modeline in Vim。 @Cbhihe 这个问题与 Python 无关,与指令的作用或工作方式无关。它询问是哪个 pre-Python 软件发明了它,以及它是否不仅仅是文件编码。 【参考方案1】:

这种指定Python文件编码的方式来自PEP 0263 - Defining Python Source Code Encodings。

它也被 GNU Emacs 识别(参见Python Language Reference, 2.1.4 Encoding declarations),虽然我不知道它是否是第一个使用该语法的程序。

【讨论】:

从 Emacs 手册中可以得出结论,value 可以是任何 LISP 表达式,特别是双引号字符串 感谢您的鼓励链接。我以前的印象是该指令仅由文本编辑器使用。直到现在,我才知道如果注释出现在文件的前两行,python 解释器实际上会解析注释。【参考方案2】:

这就是所谓的文件局部变量,Emacs 可以理解并相应设置。请参阅相应的section in Emacs manual - 您可以在文件的页眉或页脚中定义它们

【讨论】:

Python 解释器本身也能理解这种特定类型的文件局部变量,它不仅适用于文本编辑器。 ***.com/questions/41680533/…【参考方案3】:

在 PyCharm 中,我会忽略它。它会关闭底部的 UTF-8 指示器,并警告编码是硬编码的。不要认为你需要上面提到的 PyCharm 注释。

【讨论】:

实际上,如果我输入像test1 = 'äöü' 这样的行,它会提示您在文件中添加这样的标题。 (pycharm 2019.1)【参考方案4】:

# -*- coding: utf-8 -*- 是 Python 2 的东西。在 Python 3+ 中,源文件的默认编码 is already UTF-8 并且,除非它说的不是 utf-8(或 variation,如 utf8UTF-8 等),否则该行是无用的。

见:Should I use encoding declaration in Python 3?


pyupgrade 是一个工具,您可以在代码上运行以从 Python 2 中删除这些 cmets 和其他不再有用的剩余部分,例如让您的所有类都继承自 object

【讨论】:

移民从哪里来?

】移民从哪里来?【英文标题】:Wherearethemigrationscomingfrom?【发布时间】:2013-10-2002:06:10【问题描述】:我首先使用代码来生成数据库。我希望从使用add-migrationInitialCreate生成的迁移中创建数据库数据库确实使用InitialCreate迁移中... 查看详情

ASPasswordCredential - 从哪里来?

】ASPasswordCredential-从哪里来?【英文标题】:ASPasswordCredential-fromwhere?【发布时间】:2019-12-0607:35:43【问题描述】:当使用SigninwithApple时,有一个ASPasswordCredential选项可以从iCloud钥匙串中提取密码。尽管在钥匙串中存储东西的“位... 查看详情

python上的列表:`u`从哪里来? [复制]

】python上的列表:`u`从哪里来?[复制]【英文标题】:Listonpython:wherehasthe`u`comefrom?[duplicate]【发布时间】:2014-06-1300:14:15【问题描述】:快速提问:disc_list=[]#creatinganemptylisttoputthediscsintorad=70foriinrange(5):disc_list.append(cmds.polyCylinder( 查看详情

为啥 Java webapps 使用 .do 扩展名?它从哪里来的?

】为啥Javawebapps使用.do扩展名?它从哪里来的?【英文标题】:WhydoJavawebappsuse.doextension?Wherediditcomefrom?为什么Javawebapps使用.do扩展名?它从哪里来的?【发布时间】:2011-04-0514:01:16【问题描述】:我一直想知道为什么这么多Java开... 查看详情

24.你从哪里来

    增加一个Referer:https://www.google.com 就OK啦  查看详情

不知道中的知道----信息从哪里来

博弈论中的乐趣如何让计算机像人一样推理?甲乙丙三个人身上贴着2,4,8三个数字,他们只能看见另外两个人身上的数字,看不见自己身上的数字,按照甲乙丙的顺序让三个人依次回答问题:“doyouknowthenumberofyou?”,他们只能... 查看详情

测试,从哪里来,到哪里去?

这里不谈哲学,也不是无的放矢,而是有感而生。这要回到两个月前,看到两篇文章:软件测试人,你们在逐渐失去一些东西测试十二年-六道轮回后的初心能否找回作者都是一线的资深软件研发人员,了解测试的过去,但更受... 查看详情

我的创业你也可以复制:启动资金从哪里来?

...聊了下创业的城市该如何选择。接下来的问题是启动资金从哪里来了。这个问题其实和其他的问题是相互的:选择什么样的合作伙伴、注册什么性质的公司。我们今天先假设这个项目是自己来启动,如何准备这笔钱。我... 查看详情

java中.class属性从哪里来?哪个类中的属性?

这是获得一个class类的实例,JAVA里面有个类的名字叫做class,在java.lang里,用来表示当前类这个类型,这个class类的对象是由JVM自动构造的,所以可以直接获取。有点拗口,具体的方法和信息你可以看下API。追问System.out.println(Stri... 查看详情

这个标题日期从哪里来的响应? (带有Tomcat的spring-saml2)

】这个标题日期从哪里来的响应?(带有Tomcat的spring-saml2)【英文标题】:Wherecomefromthisheaderdateinresponse?(spring-saml2withTomcat)【发布时间】:2014-12-1718:40:42【问题描述】:我正在使用spring-security-saml2api来建立连接。它在一段时间内... 查看详情

ux的设计灵感从哪里来?——看看meganwilson的采访

MeganWilson是一位资深的用户体验师和UXMotel的专业编辑。同时她是ux.walkme.com网站UX专栏作家,在Facebook、领英有大量粉丝。和一般介绍性的文章不同,她喜欢用访谈的方式来发表UX方面的文章,这样的文章,有很好的现场感和可读... 查看详情

需求那么多,核心需求都从哪里来?

当一大堆需求摆在产品经理面前时,需要做的就是分清哪些是核心需求,排优先度后然后纳入产品迭代计划。关于需求管理,日本东京理工大学教授狩野纪昭提出KANO需求管理法,也就是把需求按照用户角度分为基本需求、期望... 查看详情

控制台窗口如何在内部处理 JavaScript 算术赋值?返回值从哪里来?

】控制台窗口如何在内部处理JavaScript算术赋值?返回值从哪里来?【英文标题】:HowdoestheconsolewindowhandleJavaScriptarithmeticassignmentinternally?Whereisthereturnedvaluecomingfrom?【发布时间】:2016-09-1704:47:22【问题描述】:我最近一直在玩JavaSc... 查看详情

数据湖:只是一个新名字?从哪里来,往那里去

目录​基本认识大数据背景?为什么它很大?什么是数据仓库?什么是数据湖?数据湖与数据仓库——主要区别数据湖和数据仓库的对比数据湖vs数据仓库​数据湖中的价值来自非策划数据的见解新形式的分析企... 查看详情

宇宙从哪里来?终于有人讲明白了

导读:世界的本源是什么?作者:小灰来源:程序员小灰(ID:chengxuyuanxiaohui)01哲学时代我们所生活的世界是丰富多彩的,有蓝天和白云,有大海和高山,有天上飞的小鸟,有地上跑的... 查看详情

c#如何找出“m”从哪里来(m => m.SomeProperty)?

】c#如何找出“m”从哪里来(m=>m.SomeProperty)?【英文标题】:Howdoesc#figureoutwhere"m"comesfromin(m=>m.SomeProperty)?【发布时间】:2011-05-2312:19:54【问题描述】:例如,在一个MVC应用程序中,我可以使用Html助手来创建这样的... 查看详情

请问各位大师:name=newstring(name.getbytes("iso-8859-1"));是啥意思;iso-8859-1从哪里来的?

name.getBytes("ISO-8859-1")是调用的String类的下面这个方法,publicbyte[]getBytes(StringcharsetName)throwsUnsupportedEncodingException即:使用指定的字符集将此String编码为byte序列,并将结果存储到一个新的byte数组中。当此字符串不能使用给... 查看详情

sapwebide一个和destination相关的问题-odata下拉菜单里的destination从哪里来的

我今天做开发遇到一个问题:我有trial和正式的SAPCloudPlatform账号各一个:其中trial账号的webIDE连接到productive的CloudFoundry:productive账号的WebIDE也连接到productive的CloudFoundry:我发现在我新建OData服务时,从Serviceurl的下拉菜单里,选... 查看详情