Tengo un problema con mi codificación en Python. He probado diferentes métodos, pero parece que no puedo encontrar la mejor manera de codificar mi salida en UTF-8.
Esto es lo que estoy tratando de hacer:
result = unicode(google.searchGoogle(param), "utf-8").encode("utf-8")
searchGoogle
devuelve el primer resultado de Google para param
.
Este es el error que obtengo:
exceptions.TypeError: decoding Unicode is not supported
¿Alguien sabe cómo puedo hacer que Python codifique mi salida en UTF-8 para evitar este error?
python
encoding
utf-8
character-encoding
Simonbs
fuente
fuente
unicode()
estaba jugando tratando de entender lo que estaba sucediendo. Muchas gracias :-)ascii' codec can't decode byte 0xc3 in position
. ¿Sabes por qué es eso?.encode()
a eso da como resultado que Python intente convertir a Unicode primero (usando codificación ascii). No sé por qué searchGoogle () a veces devuelve unicode y, a veces, una cadena. ¿Quizás depende de lo que le entreguesparam
? Intente ceñirse a un tipo.def uors2u(object, encoding=..., errors=...)
que devolverá elobject
parámetro sin cambios si ya está en Unicode o lo convertirá si str. Sin embargo, este código huele mal. Debería convertir todas las entradas a Unicode tan pronto como las reciba desde el exterior (como un sistema de archivos) y convertirlas de nuevo si es necesario antes de devolverlas. Debería haber un solo lugar donde convertir str a Unicode, por lo que no debería ser necesaria una función auxiliar como la que describí.