Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 7, 2007 16:13:26

Все ники заняты
От:
Зарегистрирован: 2007-02-18
Сообщения: 156
Репутация: +  1  -
Профиль   Отправить e-mail  

urllib: как определить кодировку?

import urllib
f = urllib.urlopen("http://ya.ru/")
print f.read()
Вместо русских букв печатает кракозябры :(. Windows XP SP2, ActivePython 2.5.



Офлайн

#2 Апрель 7, 2007 18:58:41

philosof
От:
Зарегистрирован: 2007-03-16
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

urllib: как определить кодировку?

import urllib
f = urllib.urlopen("http://ya.ru/")
print unicode(f.read(),'cp1251')

кодируй.

Я ответил на вопрос? Может не так понял.



Отредактировано (Апрель 7, 2007 19:00:08)

Офлайн

#3 Апрель 7, 2007 20:18:47

Все ники заняты
От:
Зарегистрирован: 2007-02-18
Сообщения: 156
Репутация: +  1  -
Профиль   Отправить e-mail  

urllib: как определить кодировку?

Да, спасибо, ответил :).



Офлайн

#4 Июнь 4, 2010 15:12:58

alexx11
От:
Зарегистрирован: 2010-05-13
Сообщения: 208
Репутация: +  0  -
Профиль   Отправить e-mail  

urllib: как определить кодировку?

Извиняюсь, что поднял древнюю тему.
Вообщем возник вопрос с этим кодом:

Все ники заняты
import urllib
f = urllib.urlopen("http://ya.ru/")
print unicode(f.read(),'cp1251')
У меня возникает такая ошибка, в чём может быть дело?
>>>
>>> import urllib
>>> f = urllib.urlopen("http://ya.ru/")
>>> print unicode(f.read(),'cp1251')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode characters in position 84-95: ordinal not in range(128)



Офлайн

#5 Июнь 4, 2010 17:51:14

dimabest
От:
Зарегистрирован: 2009-02-12
Сообщения: 253
Репутация: +  0  -
Профиль   Отправить e-mail  

urllib: как определить кодировку?

alexx11
У меня возникает такая ошибка, в чём может быть дело?
Yandex изменил кодировку с ‘cp1251’ на ‘utf8’



Офлайн

#6 Июнь 4, 2010 18:04:41

alexx11
От:
Зарегистрирован: 2010-05-13
Сообщения: 208
Репутация: +  0  -
Профиль   Отправить e-mail  

urllib: как определить кодировку?

dimabest
alexx11
У меня возникает такая ошибка, в чём может быть дело?
Yandex изменил кодировку с ‘cp1251’ на ‘utf8’
И как надо что б ошибки не было, заменить на ‘utf_8’? Не помогает!
Вообщем, тот вопрос не актуален, из-за неоднозначности понимания. Вот, такой простой код у меня выдаёт ошибку:
print unicode("Привет, Мир!", 'utf8')
В чём дело?



Офлайн

#7 Июнь 4, 2010 20:04:43

truporez
От:
Зарегистрирован: 2009-05-08
Сообщения: 266
Репутация: +  6  -
Профиль   Адрес электронной почты  

urllib: как определить кодировку?

должно работать. файл в utf-8? заголовок есть?

# -*- coding: UTF-8 -*-



Офлайн

#8 Июнь 5, 2010 01:50:23

alexx11
От:
Зарегистрирован: 2010-05-13
Сообщения: 208
Репутация: +  0  -
Профиль   Отправить e-mail  

urllib: как определить кодировку?

truporez
должно работать. файл в utf-8? заголовок есть?
# -*- coding: UTF-8 -*-
Это понятно, а в интерпитаторе почему не работает я пробовал sys.setdefaultencoding(“utf_8”) - yt помогло.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version