2016-06-26 6 views
0

Я использую python 2.7, и у меня есть некоторые проблемы с преобразованием символов, таких как «ä» в «ae».кодировка строки python unicode

Я извлекая содержание веб-страницы с помощью:

req = urllib2.Request(url + str(questionID)) 
response = urllib2.urlopen(req) 
data = response.read() 

После того, что я делаю некоторые вещи извлечения и есть моя проблема.

extractedStr = pageContent[start:end] // this string contains the "ä" ! 
extractedStr = extractedStr.decode("utf8") // here I get the error, tried it with encode aswell 
extractedStr = extractedStr.replace(u"ä", "ae") 

-> 'utf8' кодек не может декодировать байт 0xe4 в позиции 13: недействительный продолжение байт

Но: моя простая проба работает нормально ...:

someStr = "geräusch" 
someStr = someStr.decode("utf8") 
someStr = someStr.replace(u"ä", "ae") 

У меня такое чувство, это имеет какое-то отношение к КОГДА Я пытаюсь использовать функцию .decode() ... Я пробовал это на нескольких позициях, без успеха :(

+0

use '.decode (" latin-1 ")' –

+1

теперь работает нормально, thx. –

+0

Не беспокойтесь, данные кодируются латинским-1, кодировка должна быть в заголовках под типом контента. –

ответ

-1

Вместо этого используйте .decode("latin-1"). Это то, что вы являются tryi ng для декодирования.