Error de sintaxis de Python: carácter no ASCII xe2 en el archivo

Zeeshan Afridi 21 junio 2023
  1. ¿Qué son los códigos ASCII?
  2. ¿Qué es el Error de sintaxis: carácter no ASCII '\xe2' en Archivo en Python
  3. Cómo corregir el Error de sintaxis: carácter no ASCII '\xe2' en Archivo en Python
  4. Conclusión
Error de sintaxis de Python: carácter no ASCII xe2 en el archivo

Este error indica que está escribiendo un carácter no ASCII en su código. En el momento de la compilación, el intérprete se confunde y arroja el SyntaxError: Non-ASCII character '\xe2'.

Los caracteres ASCII utilizan la misma codificación que los primeros 128 caracteres de UTF-8, por lo que el texto ASCII es compatible con UTF-8. Primero, debe comprender la diferencia entre los caracteres ASCII y los no ASCII.

¿Qué son los códigos ASCII?

ASCII es el formato de codificación de caracteres más popular para datos de texto en computadoras e Internet (Código estándar estadounidense para el intercambio de información).

Hay valores distintos para 128 caracteres alfabéticos, numéricos, especiales y de control adicionales en datos codificados en ASCII.

¿Qué es el Error de sintaxis: carácter no ASCII '\xe2' en Archivo en Python

La razón principal detrás de este error es que está leyendo un carácter que su compilador de Python no reconoce.

Por ejemplo, probemos con el símbolo £, que el intérprete de Python no reconoce.

string = "£"
fp = open("test.txt", "w+")

fp.write("%s" % string)
print(string)

Producción :

SyntaxError: Non-ASCII character '\xe2'

El símbolo £ no es reconocido por el intérprete, por lo que está dando un SyntaxError: Non-ASCII character '\xe2'.

Cómo corregir el Error de sintaxis: carácter no ASCII '\xe2' en Archivo en Python

Aquí hemos incluido la declaración #codificación: utf-8 en la parte superior del programa. Este código creará un archivo test.txt en el que se almacena el valor £ y se imprimirá en la salida como se muestra.

Ejemplo de código:

# coding: utf-8
string = "£"
fp = open("test.txt", "w+")

fp.write("%s" % string)
print(string)

Producción :

£

Al leer el PEP que proporciona el error, dijo que £ no es un carácter ASCII, a pesar de los intentos de su código de utilizarlo. Use la codificación UTF-8 si puede, y coloque # codificación: utf-8 en la parte superior de su programa para comenzar.

Para volverse más complejo, incluso puede declarar codificaciones cadena por cadena en su código. Sin embargo, necesitará un codificador que lo admita en todo el archivo si intenta agregar el literal £ a su código.

También puede agregar las líneas de código que se indican a continuación.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

Conclusión

No se permite ASCII en Python, ya que el intérprete lo tratará como un SyntaxError. Python no puede ni debe intentar determinar qué cadena representa una secuencia de bytes fuera del rango ASCII.

Para solucionar este error, debe agregar codificación: utf-8 en la parte superior de su programa.

Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn

Artículo relacionado - Python Error