Подтвердить что ты не робот

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)
4b9b3361

Ответ 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).