bytes - unicode python
UnicodeEncodeError: el códec ''ascii'' no puede codificar caracteres con un nombre especial (2)
Intente configurar la codificación predeterminada del sistema como
utf-8
al comienzo del script, para que todas las cadenas se codifiquen con eso.
Ejemplo
import sys
reload(sys)
sys.setdefaultencoding(''utf-8'')
Lo anterior debería establecer la codificación predeterminada como
utf-8
.
Esta pregunta ya tiene una respuesta aquí:
Mi script de Python (ver 2.7) se está ejecutando bien para obtener algún nombre de la compañía de los archivos html locales, pero cuando se trata de un nombre de país específico, me da este error "UnicodeEncodeError: el códec ''ascii'' no puede codificar caracteres"
Especialmente obteniendo error cuando viene el nombre de esta compañía
Nombre de la empresa: Kühlfix Kälteanlagen Ing.Gerhard Doczekal & Co. KG
El enlace no puede ser procesado
Traceback (most recent call last):
File "C:/Python27/Process2.py", line 261, in <module>
flog.write("/nCompany Name: "+str(pCompanyName))
UnicodeEncodeError: ''ascii'' codec can''t encode character u''/xfc'' in position 9: ordinal not in range(128)
El error da en esta línea de código:
if companyAlreadyKnown == 0:
for hit in soup2.findAll("h1"):
print "Company Name: "+hit.text
pCompanyName = hit.text
flog.write("/nCompany Name: "+str(pCompanyName))
companyObj.setCompanyName(pCompanyName)
Realmente quieres hacer esto
flog.write("/nCompany Name: "+ pCompanyName.encode(''utf-8''))
Esta es la estrategia de "codificación tardía" descrita en esta presentación unicode (diapositivas 32 a 35).