我需要在我生成的每个Python源文件的顶部包含版权声明:
# Copyright: © 2008 etc.
但是,当我运行这样的文件时,我收到了这条消息:
SyntaxError:第3行文件MyFile.py中的非ASCII字符'\ xa9',但未声明编码;有关详细信息,请参阅http://www.python.org/peps/pep-0263.html。
显然Python对版权符号不满意,因为它假定源文件全部是ASCII。要么我需要让我的第一行成为:
# -*- coding: iso-8859-1 -*-
告诉Python我正在使用拉丁语编码,或者我可以将版权声明更改为:
# Copyright: \xa9 2008 etc.
可能没有相同的法律地位。
有更优雅的解决方案吗?
答案 0 :(得分:32)
ASCII中的版权符号拼写为(c)
或“Copyright
”。
见第61号通函Copyright Registration for Computer Programs。
虽然法律形式主义(见第1号通函Copyright Basics)确实是
符号©(a中的字母C. 圈子),或“版权”,或 缩写“Copr。”;和...
而且
也是如此然而,这已经在法庭上进行了测试。这不是一个有趣的问题。如果您搜索“(c)可以接受c-in-a-circle”,您会发现律师都同意(c)是可接受的替代品。见珀尔和威廉姆斯。参见斯科特信息技术法。保证保护 所有UCC成员的版权作品 国家,通知必须包括 符号©(“版权”一词或 缩写是不可接受的)
答案 1 :(得分:7)
与接受的答案相反,AFAIK,(c)不是官方认可的版权符号替代品,但我不确定它是否已在法庭上进行过测试。
然而,©只是对版权一词的缩影。说“Copyright 2008 Robert Munro”与说“©2008 Robert Munro”
相同您的“版权:©2008等”扩展到“版权:版权所有2008等”
维基百科的页面似乎同意我http://en.wikipedia.org/wiki/Copyright_symbol
在美国,版权声明包含三个要素: 1.©symbol,或“Copyright”或缩写“Copr。”; ...
答案 2 :(得分:3)
首先放上这一行:
# -*- coding: utf-8 -*-
答案 3 :(得分:2)
你总是可以恢复到好的旧(c)
答案 4 :(得分:2)
等待Python 3k,其中源的默认编码是UTF-8?
答案 5 :(得分:1)
对于Python 2,“正确”的事情是指定编码,或从不使用非ASCII字符。指定编码使编译器和人类更简单。很抱歉,但Python最初将ASCII指定为默认值,回到了黑暗时代。
对于Python 3,UTF-8是默认编码,所以你应该没问题。在这种情况下,如果您使用默认值,我建议不要指定编码。
语言是否允许/需要编码规范,在Unicode时代,这是我们需要记住的每个“文本”文件的问题。