Мне нужно включить заявление об авторских правах в верхнюю часть каждого создаваемого мной исходного файла 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.
который, возможно, не имеет такого же юридического статуса.
Есть ли более элегантное решение?
Что ж, это уродливая строчка в верхней части каждого файла. Кроме того, в моих файлах C++ и JavaScript не требуется указывать кодировку, так почему же мои файлы Python?






Символ авторского права в ASCII пишется как (c) или «Copyright».
См. Циркуляр 61, Регистрация авторских прав на компьютерные программы.
Хотя это правда, что правовой формализм (см. Циркуляр 1, Основы авторского права)
The symbol © (the letter C in a circle), or the word “Copyright,” or the abbreviation “Copr.”; and...
И это также правда, что
To guarantee protection for a copyrighted work in all UCC member countries, the notice must consist of the symbol © (the word “Copyright” or the abbreviation is not acceptable)
Можно копать круговые 3 и 38а.
Однако это уже было проверено в суде. Это не интересная проблема. Если вы выполните поиск по запросу «(c) приемлемо для c-in-a-circle», вы обнаружите, что все юристы согласны с тем, что (c) является приемлемой заменой. См. Перла и Уильямса. См. Скотт о законе об информационных технологиях.
(c) не является юридически действительной заменой. Строго говоря, вы могли бы это оставить. - desktoppub.about.com/cs/finetypography/ht/copyright_tm.htm
Ты уверен? Я только что заметил этот вывод Visual Studio: Copyright (C) Microsoft Corporation. Все права защищены.
Вы всегда можете вернуться к старому доброму (c)
Ожидание Python 3k, где кодировка источника по умолчанию будет UTF-8?
Или используйте Python 2.2, до того, как он был представлен;)
Вопреки принятому ответу, AFAIK, (c) не является официально признанной альтернативой символу авторского права, хотя я не уверен, что он был протестирован в суде.
Однако © - это всего лишь сокращение от слова «Авторское право». Сказать «Авторское право 2008 Роберт Манро» - это то же самое, что сказать «© 2008 Роберт Манро»
Ваше "Авторское право: © 2008 и т. д." Расширяется до «Авторское право: Авторское право 2008 г. и т. д.»
Страница Википедии, похоже, со мной согласна http://en.wikipedia.org/wiki/Copyright_symbol
В США уведомление об авторских правах состоит из трех элементов: 1. символ ©, или же слово «Copyright» или сокращение «Copr.»; ...
Это было проверено в суде. (c) является приемлемой заменой.
Для Python 2 «правильный» вариант - указать кодировку или никогда не использовать символы, отличные от ASCII. Указание кодировки упрощает работу компилятора и людей. Извините, но Python изначально указывал ASCII по умолчанию еще в темные века.
Для Python 3 кодировка по умолчанию - UTF-8, так что все будет в порядке. В этом случае я бы рекомендовал не указывать кодировку, если вы используете значение по умолчанию.
Независимо от того, допускает ли язык / требует спецификацию кодировки или нет, в эпоху Unicode это проблема, которую мы должны иметь в виду для каждого «текстового» файла.
Сначала поместите эту строку:
# -*- coding: utf-8 -*-
В чем проблема с указанием кодировки?