将版权符号放入 Python 文件中

Putting Copyright Symbol into a Python File

提问人:Charles Anderson 提问时间:10/21/2008 最后编辑:casperOneCharles Anderson 更新时间:10/6/2013 访问量:26870

问:

我需要在我生成的每个 Python 源文件的顶部包含版权声明:

#   Copyright: © 2008 etc.

但是,当我运行这样的文件时,我收到以下消息:

语法错误:文件 MyFile.py 第 3 行的非 ASCII 字符“\xa9”,但未声明编码;有关详细信息,请参阅 http://www.python.org/peps/pep-0263.html

显然,Python 对版权符号不满意,因为它假设源文件都是 ASCII 格式。要么我需要让我的第一行是:

# -*- coding: iso-8859-1 -*-

告诉 Python 我正在使用拉丁编码,或者我可以将版权声明更改为:

#   Copyright: \xa9 2008 etc.

这可能没有相同的法律地位。

有没有更优雅的解决方案?

编码

评论

1赞 Vinko Vrsalovic 10/21/2008
指定编码有什么问题?
3赞 Charles Anderson 10/22/2008
好吧,在每个文件的顶部都有一条丑陋的线。另外,我的 C++ 和 JavaScript 文件不需要指定编码,那么为什么我的 Python 文件需要指定编码呢?

答:

35赞 S.Lott 10/21/2008 #1

ASCII 中的版权符号拼写为“”。(c)Copyright

见第61号文《计算机程序著作权登记》。

虽然法律形式主义(见通告 1,版权基础)确实是

符号©(字母 C 中的 圆圈),或“版权”一词,或 缩写“Copr.”;和。。。

这也是事实

保证保护 所有UCC成员的版权作品 国家/地区,通知必须包括 符号©(“版权”一词或 缩写是不可接受的)

您可以挖掘通告 338a

然而,这已经在法庭上得到了检验。这不是一个有趣的问题。如果你搜索“(c)可接受的c-in-a-circle”,你会发现律师们都同意(c)是一个可以接受的替代品。参见 Perle 和 Williams。见斯科特关于信息技术法。

评论

0赞 Deestan 10/21/2008
(c) 不是合法有效的替代品。严格来说,你也可以把它排除在外。- desktoppub.about.com/cs/finetypography/ht/copyright_tm.htm
3赞 Charles Anderson 10/21/2008
是否确定?我刚刚注意到Visual Studio的输出:版权所有(C)Microsoft公司。保留所有权利。
1赞 darkfeline 3/20/2013
copyright.gov/title17/92chap4.html我看不出有什么说(c)不起作用。我认为政府网站比 about.com 更值得信赖;将其归咎于常见的谣言/误解
2赞 Alexander Kojevnikov 10/21/2008 #2

你总是可以恢复到原来的 (c)

2赞 bortzmeyer 10/21/2008 #3

等待 Python 3k,源的默认编码将是 UTF-8?

评论

0赞 Tony Meyer 10/22/2008
或者使用 Python 2.2,在此之前,它;)
7赞 rjmunro 10/21/2008 #4

与公认的答案相反,AFAIK,(c)不是官方认可的版权符号的替代品,尽管我不确定它是否在法庭上经过测试。

但是,©这只是版权一词的缩写。说“版权所有 2008 Robert Munro”与说“© 2008 Robert Munro”相同

您的“版权所有:© 2008 年等”。扩展为“版权:版权所有 2008 等”。

维基百科的页面似乎同意我的观点 http://en.wikipedia.org/wiki/Copyright_symbol

在美国,版权声明由三个要素组成: 1. © 符号,“版权”一词或缩写“Copr.”; ...

评论

0赞 S.Lott 10/21/2008
它已经在法庭上经过了测试。(c) 是可接受的替代品。
2赞 A. L. Flanagan 8/6/2009 #5

对于 Python 2,“正确”的做法是指定编码,或者永远不要使用非 ASCII 字符。指定编码可以使编译器和人类更简单。对不起,Python 最初将 ASCII 指定为默认值,早在黑暗时代。

对于 Python 3,UTF-8 是默认编码,所以你应该没问题。在这种情况下,如果您使用默认值,我建议不要指定编码。

无论一种语言是否允许/要求编码规范,在Unicode时代,这是我们需要为每个“文本”文件牢记的问题。

5赞 sergio 10/6/2013 #6

首先放上这一行:

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