Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

255
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

0

puedes probar:

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

o

 print u"{0}".format(l.decode('utf-8'))
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda