|
Модераторы: Daevaorn |
|
pythonwin |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2529 Регистрация: 18.4.2006 Где: за компом Репутация: 14 Всего: 36 |
это не правильно... как правильно читать по ссылкам: http://www.rupy.ru/member/5/#paper-6 http://www.rupy.ru/static/files/07/02/12/r...ich-unicode.pdf Добавлено через 54 секунды для определения кодировки текста в файле посмотри http://chardet.feedparser.org/ |
|||
|
||||
iale |
|
||||||||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 31.3.2009 Репутация: нет Всего: нет |
Видимо давно не было проблем с кодировками. Недавно начал изучать python и есть непонимание работы с кодировками, все выше перечисленные доки я прочитал. Имеем такой код:
Версия - Python 2.5.2
Результат:
Но если выполнять в интерактивном режиме, то:
Результат:
Вопрос почему разная длина, если тип один и тот же? Это сообщение отредактировал(а) iale - 31.3.2009, 14:28 |
||||||||
|
|||||||||
_Viper_ |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 87 Регистрация: 8.11.2006 Репутация: 10 Всего: 11 |
В интерактивном режиме другая кодировка, не utf-8, поэтому и длинна другая.
|
|||
|
||||
Vinata |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 26.11.2009 Где: Пенза Репутация: нет Всего: нет |
Здравствуйте, помогите пожалуйста, у меня преподоет молодой аспирант, который не рассказывает и не объясняет.. Нужно написать прогу на питоне из csv в базу данных, с распознованием знаков препинание и разделителя столбцов в csv.. помогите пожалуйсиа
|
|||
|
||||
Ch0bits |
|
||||
Python Dev. Профиль Группа: Завсегдатай Сообщений: 2124 Регистрация: 21.2.2005 Где: Казань Репутация: нет Всего: 62 |
У меня такая проблема. Использую консоль виндовс cmd.exe, если выводить в нее текст в юникоде через print то все в порядке.
А вот при возбуждении исключений выходит такой косяк.
Как это понимать? Исключения не поддерживают юникод? O_o |
||||
|
|||||
Virtuos86 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 4.12.2009 Где: Томская обл. Репутация: нет Всего: нет |
Насколько я понимаю, ответ на этот вопрос раскрыли здесь. Это сообщение отредактировал(а) Virtuos86 - 14.1.2010, 05:44 |
|||
|
||||
Karadul |
|
|||
Опытный Профиль Группа: Участник Сообщений: 378 Регистрация: 18.5.2006 Репутация: нет Всего: 1 |
||||
|
||||
pythonwin |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2529 Регистрация: 18.4.2006 Где: за компом Репутация: 14 Всего: 36 |
это не правильно и это можно прочитать здесь Презентация: pdf 292.2 Кб Тезисы: pdf 265.6 Кб |
|||
|
||||
Karadul |
|
|||
Опытный Профиль Группа: Участник Сообщений: 378 Регистрация: 18.5.2006 Репутация: нет Всего: 1 |
А где именно это там написано? Там написано только то, что не надо менять ничего в site.py, иначе прога будет работать только на компе разработчика. Может мне кажется, но можно как-то поставить default encoding в самой программе?
|
|||
|
||||
pythonwin |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2529 Регистрация: 18.4.2006 Где: за компом Репутация: 14 Всего: 36 |
Karadul, посмотри, пожалуйста, ссылки в моём посте чуть выше - там есть ответы.
|
|||
|
||||
Virtuos86 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 4.12.2009 Где: Томская обл. Репутация: нет Всего: нет |
Может нужно писать: #! -*- coding: utf-8 -*- Потому без бэнга у Вас просто комментарий написан по сути. |
|||
|
||||
mrDoctorWho |
|
||||||||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 28.10.2011 Репутация: нет Всего: нет |
Насколько я знаю, питону абсолютно без разницы как вы пишете кодировку. Лично я пишу:
Или так:
Результат один и тот же. А проблемы с Unicode я решаю так:
|
||||||||
|
|||||||||
pythonwin |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2529 Регистрация: 18.4.2006 Где: за компом Репутация: 14 Всего: 36 |
это неправильный метод. ниже выступление Юревича на rupy.ru 2007 об юникоде Использование Unicode в Python Использование Unicode в Python. тезисы |
|||
|
||||
drLans |
|
||||||||||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 11.8.2006 Репутация: нет Всего: нет |
Товарищи, помогите прояснить несколько вопросов по кодировкам. Дело происходит в Windows 7, Python 2.7.
1. Какой кодировкой print декодирует байты для вывода в человеко-понятном виде в этом случае:
Что используется, один из уникодов (utf-8, utf-16, ...), cp1251, 866, что-либо ещё? Или это зависит от текущей локали?
Или используется это?
Или это?
2. Есть файл с русскими символами, и при открытии его в Notepad++ его кодировка определяется как ANSI. Подскажите, что это за кодировка такая? Где можно увидеть её таблицу? И как с ней работать из python? 3. Можно ли как-то узнать, в какой кодировке закодирована некая строка? Это сообщение отредактировал(а) drLans - 21.2.2012, 22:04 |
||||||||||
|
|||||||||||
Karadul |
|
|||
Опытный Профиль Группа: Участник Сообщений: 378 Регистрация: 18.5.2006 Репутация: нет Всего: 1 |
Ух ты, мою тему 2х летней давности апнули. Времена проходят, а проблемы остаются теми же ))
drLans, a у тебя не юникод, так что он выводится как есть байт в байт, то есть в кодировке исходника (в случае repr). В случае print - имхо декодируется в кодировку сосноли. Ах да, есть знатный костылик на случай, если надо таки вывести любые байты на stdout (например, что из сети получил - то и выдал).
Это сообщение отредактировал(а) Karadul - 21.2.2012, 19:19 |
|||
|
||||
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Python: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |