提问人:Charles Anderson 提问时间:10/21/2008 最后编辑:casperOneCharles Anderson 更新时间:10/6/2013 访问量:26870
将版权符号放入 Python 文件中
Putting Copyright Symbol into a Python File
问:
我需要在我生成的每个 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.
这可能没有相同的法律地位。
有没有更优雅的解决方案?
答:
ASCII 中的版权符号拼写为“”。(c)
Copyright
见第61号文《计算机程序著作权登记》。
虽然法律形式主义(见通告 1,版权基础)确实是
符号©(字母 C 中的 圆圈),或“版权”一词,或 缩写“Copr.”;和。。。
这也是事实
保证保护 所有UCC成员的版权作品 国家/地区,通知必须包括 符号©(“版权”一词或 缩写是不可接受的)
然而,这已经在法庭上得到了检验。这不是一个有趣的问题。如果你搜索“(c)可接受的c-in-a-circle”,你会发现律师们都同意(c)是一个可以接受的替代品。参见 Perle 和 Williams。见斯科特关于信息技术法。
评论
你总是可以恢复到原来的 (c)
等待 Python 3k,源的默认编码将是 UTF-8?
评论
与公认的答案相反,AFAIK,(c)不是官方认可的版权符号的替代品,尽管我不确定它是否在法庭上经过测试。
但是,©这只是版权一词的缩写。说“版权所有 2008 Robert Munro”与说“© 2008 Robert Munro”相同
您的“版权所有:© 2008 年等”。扩展为“版权:版权所有 2008 等”。
维基百科的页面似乎同意我的观点 http://en.wikipedia.org/wiki/Copyright_symbol
在美国,版权声明由三个要素组成: 1. © 符号,或“版权”一词或缩写“Copr.”; ...
评论
对于 Python 2,“正确”的做法是指定编码,或者永远不要使用非 ASCII 字符。指定编码可以使编译器和人类更简单。对不起,Python 最初将 ASCII 指定为默认值,早在黑暗时代。
对于 Python 3,UTF-8 是默认编码,所以你应该没问题。在这种情况下,如果您使用默认值,我建议不要指定编码。
无论一种语言是否允许/要求编码规范,在Unicode时代,这是我们需要为每个“文本”文件牢记的问题。
首先放上这一行:
# -*- coding: utf-8 -*-
评论