GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo resolver UnicodeDecodeError en Python 3.6?

Tuve este problema al usar Python dentro de un contenedor Docker basado en Ubuntu 18.04. Parecía ser un problema de configuración regional, que se resolvió agregando lo siguiente al Dockerfile:

ENV LANG C.UTF-8

Parece que su ubicación está rota y tiene otros bytes->problema de Unicode . Lo que hiciste para Python 2.7 es un truco que solo enmascaró el problema real (hay una razón por la que tienes que reload sys para que funcione).

Para corregir su configuración regional, intente escribir locale desde la línea de comandos. Debería verse algo como:

LANG=en_GB.UTF-8
LC_CTYPE="en_US.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_ALL=

locale depende de LANG siendo configurado correctamente. Python usa efectivamente locale para averiguar qué codificación usar al escribir en la salida estándar. Si no funciona, el valor predeterminado es ASCII.

Primero debe intentar corregir su configuración regional. Si locale errores, asegúrese de haber instalado el paquete de idioma correcto para su región.

Si todo lo demás falla, siempre puedes arreglar Python configurando PYTHONIOENCODING=UTF-8 . Esto debe usarse como último recurso, ya que estará enmascarando los problemas una vez más.

Si Python sigue arrojando un error después de configurar PYTHONIOENCODING entonces actualice su pregunta con stacktrace. Lo más probable es que tenga una conversión implícita en curso.


Linux
  1. Cómo instalar Python en Linux

  2. Cómo instalar Python en Linux Mint 20

  3. Cómo:Programación de sockets en Python

  4. Cómo instalar Python 3.10 en Rocky Linux 8

  5. Cómo rastrear scripts de Python usando trace.py

Cómo comentar en Python

Cómo instalar Python 3.7 en Ubuntu 18.04

Cómo comprobar la versión de Python

Cómo ejecutar un script de Python en PHP

Cómo instalar Python PIP en Ubuntu 18.04

Cómo usar conjuntos en Python