Помещение символа авторского права в файл Python - PullRequest
13 голосов
/ 21 октября 2008

Мне нужно добавить заявление об авторских правах вверху каждого исходного файла Python, который я создаю:

#   Copyright: © 2008 etc.

Однако, когда я запускаю такой файл, я получаю следующее сообщение:

SyntaxError: Не-ASCII символ '\ xa9' в файле MyFile.py в строке 3, но кодировка не объявлена; подробности см. http://www.python.org/peps/pep-0263.html.

Очевидно, что Python не в восторге от символа авторского права, поскольку предполагает, что исходный файл находится в ASCII. Либо мне нужно, чтобы моя первая строка была:

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

, чтобы сообщить Python, что я использую латинскую кодировку, или я могу изменить заявление об авторском праве на:

#   Copyright: \xa9 2008 etc.

который, возможно, не имеет такого же юридического статуса.

Есть ли более элегантное решение?

Ответы [ 6 ]

32 голосов
/ 21 октября 2008

Символ авторского права в ASCII пишется (c) или "Copyright".

См. Циркуляр 61, Регистрация авторских прав на компьютерные программы .

Хотя это правда, что правовой формализм (см. Циркуляр 1, Основы авторского права ) равен

Символ © (буква С в круг), или слово «Авторское право», или аббревиатура «Копр.»; и ...

И это правда, что

Чтобы гарантировать защиту для авторские работы во всех членах UCC страны, уведомление должно состоять из символ © (слово «Авторское право» или аббревиатура не допускается)

Вы можете копать по кругу 3 и 38a .

Это, однако, уже было проверено в суде. Это не интересная проблема. Если вы выполните поиск слова «(c) приемлемо для c-in-a-circle», вы обнаружите, что все юристы согласны с тем, что (c) является приемлемой заменой. См. Перл и Уильямс. См. Скотт о Законе об информационных технологиях.

7 голосов
/ 21 октября 2008

Вопреки принятому ответу, AFAIK, (c) не является официально признанной альтернативой символу авторского права, хотя я не уверен, что это было проверено в суде.

Тем не менее, © является всего лишь сокращением слова Copyright. Выражение «Copyright 2008 Robert Munro» идентично высказыванию «© 2008 Robert Munro»

Ваше «Авторское право: © 2008 и т. Д.» Расширяется до «Авторское право: Авторское право 2008 и т. Д.»

Страница Википедии, похоже, согласна со мной http://en.wikipedia.org/wiki/Copyright_symbol

В США уведомление об авторских правах состоит из трех элементов: 1. символ ©, или , слово «Авторское право» или сокращение «Копр.»; ...

3 голосов
/ 06 октября 2013

Сначала поставьте эту строку:

# -*- coding: utf-8 -*-
2 голосов
/ 21 октября 2008

Ожидание Python 3k , где кодировкой источника по умолчанию будет UTF-8?

2 голосов
/ 21 октября 2008

Вы всегда можете вернуться к старому доброму (с)

1 голос
/ 06 августа 2009

Для Python 2 «правильное» решение - указать кодировку или никогда не использовать символы, не входящие в ASCII. Задание кодировки упрощает работу компилятора и людей. Извините, но Python изначально указал ASCII как значение по умолчанию, еще в темные века.

Для Python 3 UTF-8 является кодировкой по умолчанию, так что все должно быть в порядке. В этом случае я бы рекомендовал не указывать кодировку, если вы используете значение по умолчанию.

Независимо от того, позволяет ли язык / требует спецификацию кодировки, в эпоху Unicode это проблема, которую мы должны учитывать для каждого "текстового" файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...