Lingua-e
← Errores
Python

Qué significa UnicodeEncodeError y cómo solucionarlo

Referencia del error

UnicodeEncodeError

Lenguaje

Python

Severidad

Media

Cuándo ocurre

UnicodeEncodeError se lanza cuando Python no puede codificar una cadena Unicode en una codificación de bytes especificada.

Posibles soluciones

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.

Errores relacionados

Más detalles

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.

Posibles soluciones

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.

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ódigo corregido

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

Practica en inglés

¿Cómo le explicarías un UnicodeEncodeError a un compañero dev? Elige la frase correcta:

"I hit an error...

¿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