Kodek „ascii” nie może kodować znaku na pozycji * ord nie mieszczącej się w zakresie (128)

Istnieje kilka wątków na stackoverflow, ale nie mogłem znaleźć poprawnego rozwiązania problemu jako całości.

Zebrałem ogromne sumy danych tekstowych z funkcji odczytu urllib i zapisałem to samo w plikach pickle.

Teraz chcę zapisać te dane do pliku. Podczas pisania otrzymuję błędy podobne do -

'ascii' codec can't encode character u'\u2019' in position 16: ordinal not in range(128)

i wiele danych jest traconych.

Przypuszczam, że dane z odczytu urllib są danymi bajtowymi

próbowałem

   1. text=text.decode('ascii','ignore')
   2. s=filter(lambda x: x in string.printable, s)
   3. text=u''+text
      text=text.decode().encode('utf-8')

ale wciąż kończę się podobnymi błędami. Czy ktoś może wskazać właściwe rozwiązanie. A także kodery-dekodery działają. Nie mam problemów, jeśli bajty konfliktów nie są zapisywane w pliku jako łańcuch, dlatego utrata jest akceptowana.

questionAnswers(2)

yourAnswerToTheQuestion