utf8 open español bytes python encoding

español - python open encoding



Poniendo el símbolo de copyright en un archivo de Python (6)

Necesito incluir una declaración de derechos de autor en la parte superior de cada archivo fuente de Python que produzco:

# Copyright: © 2008 etc.

Sin embargo, cuando luego ejecuto dicho archivo, recibo este mensaje:

SyntaxError: carácter no ASCII ''/ xa9'' en el archivo MyFile.py en la línea 3, pero no se ha declarado ninguna codificación; ver http://www.python.org/peps/pep-0263.html para más detalles.

Aparentemente Python no está contento con el símbolo de copyright porque asume que el archivo fuente está en ASCII. O necesito hacer que mi primera línea sea:

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

decirle a Python que estoy usando codificación latina, o puedo cambiar la declaración de derechos de autor a:

# Copyright: /xa9 2008 etc.

que posiblemente no tenga la misma posición legal.

¿Hay una solución más elegante?


¿Esperando Python 3k , donde la codificación predeterminada de la fuente será UTF-8?


Al contrario de la respuesta aceptada, AFAIK, (c) no es una alternativa oficialmente reconocida al símbolo de copyright, aunque no estoy seguro de que haya sido probado en la corte.

Sin embargo, © es solo una abreviación de la palabra Copyright. Decir "Copyright 2008 Robert Munro" es idéntico a decir "© 2008 Robert Munro"

Su "Copyright: © 2008, etc." Se expande a "Copyright: Copyright 2008, etc."

La página de Wikipedia parece estar de acuerdo conmigo http://en.wikipedia.org/wiki/Copyright_symbol

En los Estados Unidos, el aviso de copyright consta de tres elementos: 1. el símbolo ©, o la palabra "Copyright" o abreviatura "Copr."; ...


El símbolo de copyright en ASCII se escribe (c) o " Copyright ".

Vea la circular 61, Registro de derechos de autor para programas de computadora .

Si bien es cierto que el formalismo legal (consulte la Circular 1, Conceptos básicos sobre derechos de autor ) es

El símbolo © (la letra C en un círculo), o la palabra "Copyright" o la abreviación "Copr."; y...

Y también es cierto que

Para garantizar la protección de una obra protegida por derechos de autor en todos los países miembros de la UCC, la notificación debe consistir en el símbolo © (la palabra "Copyright" o la abreviación no es aceptable)

Puede excavar a través de la circular 3 y 38a .

Esto, sin embargo, ya ha sido probado en la corte. No es un problema interesante. Si realiza una búsqueda de "(c) aceptable para c-en-un-círculo", encontrará que todos los abogados están de acuerdo en que (c) es un sustituto aceptable. Ver Perle y Williams. Ver Scott en la Ley de Tecnología de la Información.


Siempre puedes volver al viejo (c)


Para Python 2, lo "correcto" es especificar la codificación, o nunca usar caracteres que no sean ASCII. Especificar la codificación lo hace más simple en el compilador y en los humanos. Lo sentimos, pero Python originalmente especificó ASCII como predeterminado, en la Edad Media.

Para Python 3, UTF-8 es la codificación predeterminada, por lo que debería estar bien. En ese caso, recomendaría no especificar la codificación si usa el valor predeterminado.

Si un idioma permite / requiere una especificación de codificación o no, en la era de Unicode, este es un problema que debemos tener en cuenta para cada archivo de "texto".


Pon esta línea al principio:

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