Qué significa UnicodeEncodeError y cómo solucionarlo
Referencia del error
UnicodeEncodeError
Lenguaje
Severidad
MediaCuá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
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