Solucione el TypeError: la decodificación de Unicode no es compatible con Python

Zeeshan Afridi 21 junio 2023
  1. el Error de tipo: no se admite la decodificación de Unicode en Python
  2. Solucione el Error de tipo: no se admite la decodificación de Unicode en Python
  3. Conclusión
Solucione el TypeError: la decodificación de Unicode no es compatible con Python

Este artículo discutirá cómo resolver el error TypeError: no se admite la decodificación de Unicode en Python.

el Error de tipo: no se admite la decodificación de Unicode en Python

Una cadena Unicode es una colección de puntos de código, que son dígitos que van desde 0 a 0x10FFFF (1,114,111 decimal). El conjunto de unidades de código que debe utilizarse para representar esta serie de puntos de código en la memoria se asigna a bytes de 8 bits.

Una codificación de caracteres, o simplemente una codificación, es un conjunto de reglas que determinan cómo convertir un texto Unicode en una serie de bytes. Su idea inicial podría ser usar números enteros de 32 bits como unidad de codificación y luego usar la representación de la CPU de números enteros de 32 bits.

Una de las codificaciones más utilizadas es UTF-8, que Python suele utilizar de forma predeterminada. UTF significa formato de transformación Unicode y 8 indica que la codificación utiliza valores de 8 bits.

Existen otras codificaciones, como UTF-16 y UTF-32, aunque son menos populares que UTF-8.

Código de ejemplo:

result = unicode(google.searchGoogle(param), "utf-8").encode("utf-8")

Producción :

TypeError: decoding Unicode is not supported

Solucione el Error de tipo: no se admite la decodificación de Unicode en Python

Para solucionar este error, tenemos que cambiar la sintaxis de esta línea result = Unicode(google.searchGoogle(param), "utf-8").encode("utf-8") a result = google.searchGoogle(param ).codificar("utf-8"). UTF-8 debe eliminarse después de google.searchGoogle(param). Por lo tanto, esto resolverá el error de descodificación de Unicode no compatible, como se muestra en el siguiente ejemplo.

resultado = google.buscarGoogle(parámetro).encode("utf-8")

Otro es el Error de tipo: no se admite la decodificación de str en Python. Esto ocurre cuando intentamos repetidamente convertir un objeto en una cadena o cuando llamamos al método str() sin pasarle primero el objeto de bytes.

Código de ejemplo:

str("even", str(123))
str("abc", encoding="utf-8")

Producción :

TypeError: decoding str is not supported

La clase str se menciona dos veces en el ejemplo anterior; cada llamada está anidada dentro de la otra. No se proporciona un objeto de bytes adecuado; en su lugar, se establece el argumento de la palabra clave de codificación.

Solo cuando se proporciona un objeto de bytes válido se puede configurar la codificación.

Para evitar este error, puede usar un literal de cadena con formato. Este error se puede evitar utilizando la interfaz de formato de cadena o los literales de cadena formateados más recientes.

Además, estas opciones ofrecen métodos más potentes, adaptables y ampliables.

str1 = "even"
num1 = 2, 4, 6, 8
result = f"{str1} {num1}"
print(result)

Producción :

even (2, 4, 6, 8)

Conclusión

A veces, cuando queremos codificar nuestra salida en UTF-8 pero no estamos usando la sintaxis correcta, surge el error de Python “no se admite la decodificación de Unicode” porque no se proporciona un objeto de bytes correcto. Se produce otro error al decodificar str no compatible con Python.

Solo cuando se proporciona un objeto de bytes válido se puede definir la codificación. El artículo anterior corrige estos errores.

Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn

Artículo relacionado - Python Error