UnicodeEncodeError: кодек ascii не может кодировать символ при специальном имени
Мой python (ver 2.7) script работает хорошо, чтобы получить какое-то название компании из локальных html файлов, но когда дело доходит до определенного имени страны, оно дает эту ошибку "UnicodeEncodeError: кодек ascii не может кодировать символ"
Особая ошибка при появлении этого названия компании
Название компании: Kühlfix Kälteanlagen Ing.Gerhard Doczekal and Co. KG
Ссылка не может быть обработана
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)
Ошибка в этой строке кода:
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)
Ответы
Ответ 1
Попробуйте установить системную по умолчанию кодировку как utf-8
в начале script, чтобы все строки были закодированы с использованием этого.
Пример -
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
Вышеуказанное должно установить кодировку по умолчанию как utf-8
.
Ответ 2
Вы действительно хотите это сделать
flog.write("\nCompany Name: "+ pCompanyName.encode('utf-8'))
Это стратегия конца кодирования, описанная в этой презентации unicode (слайды с 32 по 35).