UnicodeEncodeError: 'ascii' codec не могу закодировать символ u '\ u2019' в позиции 126: порядковый номер не в диапазоне (128)

Хорошо, я прочитал много похожих вопросов и считаю, что правильно следую советам, но почему-то мой код все еще не работает.

Я проанализировал XML-файл. Я читал здесь, что теперь вывод в Юникоде. Я использую средство записи csv для записи вывода в файл.

Итак, в моем коде я попытался закодировать в utf-8 перед использованием writerow. Почему я все еще получаю сообщение об ошибке на writerow? Мое предупреждение "юникод !!!" не выдается, пока не произойдет эта ошибка (я использую это для нескольких файлов, и он работает для большинства). На самом деле, однако, я не понимаю, почему писатель пытается использовать ascii, разве он не должен ожидать utf-8? Я заменил utf-8 на ascii в функции кодирования просто для удовольствия. Те же результаты. Пожалуйста помоги!!!

        try:

           mystring=elem.find('./'+r2+'Description').text


           if isinstance(mystring, unicode):
               print("unicode!!!")
               mystring.encode('utf-8','ignore')
               datalist.append(mystring)
           else:    
               datalist.append(mystring)
        except AttributeError:
           datalist.append('No text')  

        c.writerow(datalist)
7
задан DNS 19 December 2011 в 16:59
поделиться