Найти - Пользователи
Полная версия: UnicodeEncodeError: ... character '\u2013'
Начало » Python для экспертов » UnicodeEncodeError: ... character '\u2013'
1 2
alucardmc
В чем прикол?
Загружаю с интернета страницу, не могу раскодировать ее
вылетает ошибка
    print(str(rhtml, 'cp1251', 'ignore'))
File "\Python31\lib\encodings\cp866.py", line 19, in enc
ode
return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u2013' in position
41807: character maps to <undefined>
Уже не знаю как бороться, как поправить файл cp866.py чтоб не было таких проблем?
получаю страницу вывожу ее
rhtml = page.read()
print(rhtml)
получаю
...
5\xe9</a><span>&middot;</span>\n\n\t\n <a href="http://auto.mail.ru/commo
n/policy.html">\xd3\xf1\xeb\xee\xe2\xe8\xff \xe8\xf1\xef\xee\xeb\xfc\xe7\xe2
\xe0\xed\xe8\xff \xec\xe0\xf2\xe5\xf0\xe8\xe0\xeb\xee\xe2</a><span>&middot;</spa
...
Это часть, что я получаю, то есть англ символы норм вывелись а русские нет, при этом print(type(rhtml)) - <class ‘bytes’>
а как только пытаюсь байты перенести в строку(причем ошибка если всю страницу)-вылетает ошибка что выше
bazooka
версия python?
alucardmc
3.1
и вообще почему такая ошибка возникает? как я понимаю баг в самом питоне, в файле кодировок cp866.py?
regall
alucardmc, почитайте для начала, как устроена работа с байтами и строками в Python 3.x. - http://diveintopython3.org/strings.html#byte-arrays
bazooka
а rhtml точно в cp1251?
alucardmc
страница на сайте <meta http-equiv=“content-type” content=“text/html; charset=windows-1251” />
посылаю в хэдах
'Accept' : ‘text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1’,
‘Accept-Language’ : ‘ru-RU,ru;q=0.9,en;q=0.8’,
‘Accept-Charset’ : ‘windows-1251, cp1251, *;q=0.1’,
‘Accept-Encoding’ : ‘txt, *;q=0’,
alucardmc
прикол в том что он не может один символ раскодировать, как его пропустить? ‘ignore’ и ‘replace’ по моему вообще не работают
alucardmc
при чем здесь http://diveintopython3.org/strings.html#byte-arrays ? читай о чем я пишу
regall
alucardmc
при чем здесь http://diveintopython3.org/strings.html#byte-arrays ? читай о чем я пишу
Да, это баг в питоне. Забейте на него, такой баговый язык …
alucardmc
как поправить этот баг?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB