Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

251
Vistas
UnicodeEncodeError en Linux pero no en Windows

Recibo un UnicodeEncodeError: 'ascii' codec can't encode excepción cuando intento imprimir una cadena Unicode en Linux. En Windows no me sale el error.

El código ejecutado en Linux:

 my_str = u'\u4ece\u5165\u5e93' print "%r" % my_str #output: u'\u4ece\u5165\u5e93' print "%s" % my_str #output: UnicodeEncodeError: 'ascii' codec can't encode character u'\u4ece' in position 0: ordinal not in range(128)

En Windows obtengo:

 my_str = u'\u4ece\u5165\u5e93' print "%r" % my_str #output: u'\u4ece\u5165\u5e93' print "%s" % my_str #output: 从入库
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Es muy probable que su locale y/o entorno esté roto, no instalado, no configurado o configurado en C . Python usa la configuración regional para aplicar el codificador correcto en la salida estándar. Esto permite que los Unicodes se codifiquen con la codificación adecuada.

Si está ejecutando Python desde la línea de comandos, asegúrese de que su configuración regional esté en buen estado. Escriba locale y debería ver algo como:

 $ locale LANG=en_GB.UTF-8 LANGUAGE= LC_CTYPE="en_GB.UTF-8" LC_NUMERIC="en_GB.UTF-8" LC_TIME="en_GB.UTF-8" LC_COLLATE="en_GB.UTF-8" LC_MONETARY="en_GB.UTF-8" LC_MESSAGES="en_GB.UTF-8" LC_PAPER="en_GB.UTF-8" LC_NAME="en_GB.UTF-8" LC_ADDRESS="en_GB.UTF-8" LC_TELEPHONE="en_GB.UTF-8" LC_MEASUREMENT="en_GB.UTF-8" LC_IDENTIFICATION="en_GB.UTF-8" LC_ALL= $

Si ve mensajes de error o si LANG=C o similar, Python usará un codificador ASCII, que rechaza los caracteres que no son ASCII.

Para encontrar las configuraciones regionales instaladas en su sistema, escriba locale -a . Seleccione la configuración regional adecuada, idealmente una que termine en "UTF-8", y establezca LANG en consecuencia. P.ej

 LANG=en_GB.UTF-8

Vuelva a ejecutar la locale y compruebe si hay errores. Si aún recibe errores, deberá investigar cómo reconstruir sus locales para su distribución.

Si está ejecutando dentro de un IDE o no puede arreglarlo, entonces puede tener éxito agregando la siguiente variable de entorno a su shell o configuración de ejecución de IDE:

 export PYTHONIOENCODING=utf-8

Esto le dice a Python que ignore la configuración regional y aplique un codificador UTF-8 a la salida estándar.

Puede validar lo que Python está usando para la configuración regional utilizando el módulo de locale en Python. Vuelve mi local saludable:

 >>> import locale >>> locale.getdefaultlocale() ('en_GB', 'UTF-8') >>> locale.getpreferredencoding() 'UTF-8'

Una configuración regional en mal estado devolverá US-ASCII para locale.getpreferredencoding()

over 4 years ago · Santiago Trujillo Denunciar

0

puedes probar:

 print u"{0}".format(str)

o

 print u"{0}".format(l.decode('utf-8'))
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda