Lingua-e
Python

¿Qué significa UnicodeEncodeError?

← Errores

UnicodeEncodeError se lanza cuando Python no puede codificar una cadena Unicode en una codificación de bytes especificada. El caso más común es intentar escribir una cadena con caracteres no ASCII usando una codificación ASCII o Latin-1.

Por qué ocurre

  • Escribir una cadena con caracteres acentuados o no latinos en un archivo abierto con encoding='ascii'.
  • Enviar texto Unicode a través de un flujo de bytes que espera ASCII.
  • La terminal o el entorno tiene una codificación limitada (ej. CP437 en Windows).
  • Usar str.encode('ascii') en una cadena que contiene caracteres fuera del rango ASCII.

Ejemplos

Python

Código que causa el error

text = "Café"
with open("output.txt", "w", encoding="ascii") as f:
    f.write(text)

Error en la terminal

UnicodeEncodeError: 'ascii' codec can't encode character '\xe9' in position 3: ordinal not in range(128)

Cómo solucionarlo

Siempre especifica encoding='utf-8' al abrir archivos para escritura. Usa errors='replace' o errors='ignore' como último recurso cuando no puedes controlar la codificación. Establece la variable de entorno PYTHONIOENCODING a utf-8 para problemas de salida en terminal.

Código corregido

text = "Café"
with open("output.txt", "w", encoding="utf-8") as f:
    f.write(text)

Errores relacionados

¿Listo para practicar tu inglés en el trabajo?

Lingua-e tiene ejercicios interactivos basados en conversaciones reales de developers: standups, code reviews, retrospectivas y más. Practica hasta que salga solo.

Prueba Lingua-e gratis