tutorial lenguaje español descargar python

lenguaje - Python "SyntaxError: carácter no ASCII ''/ xe2'' en el archivo"



python wikipedia (16)

Basado en PEP 0263 - Definición de codificaciones de código fuente de Python

Python will default to ASCII as standard encoding if no other encoding hints are given. To define a source code encoding, a magic comment must be placed into the source files either as first or second line in the file, such as: # coding=<encoding name> or (using formats recognized by popular editors) #!/usr/bin/python # -*- coding: <encoding name> -*- or #!/usr/bin/python # vim: set fileencoding=<encoding name> :

Estoy escribiendo un código python y estoy recibiendo el mensaje de error como en el título, desde la búsqueda esto tiene que ver con el conjunto de caracteres.

Aquí está la línea que causa el error

hc = HealthCheck("instance_health", interval=15, target808="HTTP:8080/index.html")

No puedo entender qué personaje no está en el conjunto ASCII de ANSI. Además, al buscar "/ xe2" no aparece más información sobre qué personaje aparece. ¿Qué personaje en esa línea está causando el problema?

También he visto algunas soluciones para este problema, pero no estoy seguro de cuál usar. ¿Podría alguien aclarar cuál es el problema (Python no interpreta Unicode a menos que se lo indiquen?), Y ¿cómo lo aclararía correctamente?

EDITAR: Aquí están todas las líneas cercanas a la que los errores

def createLoadBalancer(): conn = ELBConnection(creds.awsAccessKey, creds.awsSecretKey) hc = HealthCheck("instance_health", interval=15, target808="HTTP:8080/index.html") lb = conn.create_load_balancer(''my_lb'', [''us-east-1a'', ''us-east-1b''],[(80, 8080, ''http''), (443, 8443, ''tcp'')]) lb.configure_health_check(hc) return lb


Cambiar la codificación de caracteres del archivo,

ponga debajo de la línea al principio de su código siempre

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


Cuando tengo un problema similar cuando leo archivos de texto, uso ...

f = open(''file'',''rt'', errors=''ignore'')


Después de aproximadamente media hora de revisar el desbordamiento de la pila, me di cuenta de que si el uso de una comilla simple "''" en un comentario pasaría por el error:

SyntaxError: Non-ASCII character ''/xe2'' in file

Después de mirar la trazabilidad, pude ubicar la comilla simple utilizada en mi comentario.


Estoy tratando de analizar esas extrañas ventanas apostraphe y después de probar varias cosas aquí está el fragmento de código que funciona.

def convert_freaking_apostrophe(self,string): try: issuer_rename = string.decode(''windows-1252'') except: issuer_rename = string.decode(''latin-1'') issuer_rename = issuer_rename.replace(u''’'', u"''") issuer_rename = issuer_rename.encode(''ascii'',''ignore'') try: os.rename(directory+"/"+issuer,directory+"/"+issuer_rename) print "Successfully renamed "+issuer+" to "+issuer_rename return issuer_rename except: pass #HANDLING FOR FUNKY APOSTRAPHE if re.search(r"([/x90-/xff])", issuer): issuer = self.convert_freaking_apostrophe(issuer)


O simplemente puede usar:

# coding: utf-8

en la parte superior del archivo .py


Obtuve este error para los personajes en mis comentarios (desde copiar / pegar contenido de la web en mi editor para tomar notas).

Para resolver en Text Wrangler:

  1. Resalta el texto
  2. Ve al menú de Texto
  3. Seleccione "Convertir a ASCII"

Para mí, el problema ha causado debido a "''" ese símbolo en las comillas. Como había copiado el código de un archivo pdf, causó ese error. Acabo de reemplazar "''" por este "''".


Si ayuda a alguien, para mí eso ocurrió porque estaba tratando de ejecutar una implementación de Django en Python 3.4 con mi comando python 2.7


Si solo está tratando de usar caracteres UTF-8 o si no le importa si están en su código, agregue esta línea al principio de su archivo .py

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


Tienes un byte perdido flotando alrededor. Puedes encontrarlo ejecutando

with open("x.py") as fp: for i, line in enumerate(fp): if "/xe2" in line: print i, repr(line)

donde debe reemplazar "x.py" por el nombre de su programa. Verás el número de línea y la (s) línea (s) ofensiva (s). Por ejemplo, después de insertar ese byte arbitrariamente, obtuve:

4 "/xe2 lb = conn.create_load_balancer(''my_lb'', [''us-east-1a'', ''us-east-1b''],[(80, 8080, ''http''), (443, 8443, ''tcp'')])/n"


Tuve el mismo error al copiar y pegar un comentario de la web

Para mí fue una sola cita ('') en la palabra

Simplemente lo borré y lo reescribí.


Tuve el mismo problema, pero fue porque copié y pegué la cadena tal como está. Más tarde, cuando escribí manualmente la cadena tal como está, el error desapareció.

Tuve el error debido al signo - . Cuando lo reemplacé con una entrada manual a - el error fue resuelto.

Cadena copiada 10 + 3 * 5/(16 − 4)

Cadena manualmente escrita 10 + 3 * 5/(16 - 4)

puede ver claramente que hay una pequeña diferencia entre los dos guiones .

Creo que es debido a los diferentes formatos utilizados por diferentes sistemas operativos o quizás solo a diferentes programas.


Tuve esta misma solución problema es simple. Si ha copiado algo de la web, si hay símbolos como (", -,") simplemente reemplácelos con las teclas del teclado. El problema se resolverá.


Tuve este problema exacto ejecutando el sencillo código .py a continuación:

import sys print ''version is:'', sys.version

El código anterior de DSM proporciona lo siguiente:

1 ''print / xe2 / x80 / x98version es / xe2 / x80 / x99, sys.version''

Entonces, el problema era que mi editor de texto usaba SMART QUOTES, como sugirió John Y. Después de cambiar la configuración del editor de texto y volver a abrir / guardar el archivo, funciona muy bien.


/ xe2 es el carácter ''-'', aparece en algunos copiar y pegar, utiliza una apariencia igual ''-'' que provoca errores de codificación. Reemplace el ''-'' (del copiar y pegar) con el ''-'' correcto (desde su botón de teclado).