Найти - Пользователи
Полная версия: Кодировка в IDLE
Начало » Python для новичков » Кодировка в IDLE
1
wade
Добрый день.

У меня такой вопрос.

Я в IDLE получаю какой-нибудь html документ в кодировке utf-8 (через Urllib), пишу его в переменную h. Переменная - обычный STR, хотя содержимое - в кодировке utf 8.

Потом я назначаю другую переменную присваиванием: s = ‘фрагмент текста’, ввожу текст на русском.

Проверяю s in h, получаю false.

В IDLE выставлена кодировка UTF-8.

1) Можно ли делать проверку наличия подстроки описанным мною способом?
2) Если нет, то как можно иным способом искать подстроки в кодировке UTF-8 работая с Python в интерактивном режиме.

Спасибо.
diam123
#!/usr/bin/env python
#-*-encoding:UTF-8-*-

import urllib
html = urllib.urlopen("http://google.com").read().decode("UTF-8")
need_to_find = u"Вася Пупкин"
if need_to_find in html:
print 1
else:
print 0
quill_driver
Нужно, чтобы в IDLE результаты выполнения команд отображались кириллицей, а не кодами символов. Подскажите, пожалуйста, что я делаю неправильно:
#!/usr/bin/env python
# -*- coding: cp1251 -*-
s = "Текст"
print s[0], s[-1]
Т т
s = "Это пример текста"
lst = s.split(" ")
print lst
['\xd6\xe5', '\xef\xf0\xe8\xea\xeb\xe0\xe4', '\xf3\xea\xf0\xe0\xbf\xed\xf1\xfc\xea\xee\xe3\xee', '\xf2\xe5\xea\xf1\xf2\xf3']
import codecs
print lst.encode('windows-1251')

Traceback (most recent call last):
File "<pyshell#10>", line 1, in <module>
print lst.encode('windows-1251')
AttributeError: 'list' object has no attribute 'encode'
Windows XP, стандартная русская локализация, версия Python и IDLE - 2.6.4.
Заранее спасибо за ответ.
Nik
Используйте цикл для перебора списка и оператор print для вывода:
>>> s = "Это пример текста"
>>> lst = s.split(" ")
>>> for i in lst: print i

Это
пример
текста
>>> "Текст"
'\xd2\xe5\xea\xf1\xf2'
>>> print "Текст"
Текст
В противном случае вызывается метод __repr__(), а не __str__(). В результате русские буквы будут представлены кодами символов.
quill_driver
#!/usr/bin/env python
Эта строка в Windows XP не нужна…
bazooka
но и не мешает
pyuser
определенно мешает, видимо благодаря ей код топикастера
s = "Это пример текста"
lst = s.split(" ")
print lst
выводит
['Це', 'приклад', 'українського', тексту']
pyuser
Nik
Используйте цикл для перебора списка и оператор print для вывода:
>>> s = "Это пример текста"
>>> lst = s.split(" ")
>>> for i in lst: print i
Это
пример
текста
совершенно неожиданно наткнулся на более “красивый” способ:
s = "Это пример текста"
lst = s.split(" ")
print(", ".join(unicode(x) for x in lst))
Это, пример, текста
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