Форум сайта python.su
увидел очередной топик про кодировки в “Python для новичков”, вспомнил что у меня знакомые признавались что путаются в кодировках, и решил написать статью. Написал про кодировки так как я их понимаю.
прошу экспертов, у кого есть лишние 5 мин, посмотреть статью, указать на ошибки, чем дополнить. буду благодарен.
сама статья
Отредактировано (Март 27, 2010 21:29:09)
Офлайн
алилуя. Прикрепите топик xD
Добавьте там тока пометочку про третий питон и о том, что статья о ветке 2.x
Отредактировано (Март 28, 2010 15:13:20)
Офлайн
Zubchickготово :)
Добавьте там тока пометочку про третий питон и о том, что статья о ветке 2.x
Офлайн
Хм… Не очень грамотно.
В python есть 2 вида кодировок: рабочая(внутренняя) - unicode и внешняя - strОчень важно понимать, что unicode, это не кодировка! Это высокоуровневый объект для работы с символьными данными, или, проще говоря, с текстом. А str, это просто массив байт, которыми можно кодировать символы… А можно и не кодировать.
Офлайн
>> Дальше читать не стал, ИМХО настолько фундаментальная ошибка в первой же строчке говорит о том, что переделывать надо всё.
wine это эмулятор программ виндовз, чтобы запустить вашу программу под wine сделайте это…дальше читать не стал, вайн это не эмулятор!!
Офлайн
ZZZя слазил на сам python.org - http://docs.python.org/tutorial/introduction.html#unicode-strings
Очень важно понимать, что unicode, это не кодировка! Это высокоуровневый объект для работы с символьными данными, или, проще говоря, с текстом.
Офлайн
o7412369815963все, написал и про объекты и про кодировки
ща наверно как-нибудь укажу это в статье.
Офлайн
Zubchick, не цепляйся. Мне кажется, что лучше сразу давать правильные понятия и определения, чтобы не вводить новичков в заблуждение. А то это как в школе: до какого-то класса говорят, что нельзя из меньшего вычесть большее…
объект unicode работает с текстом в кодировке unicodeОно, в общем-то правильно, но запутано. Тут не важен тот факт, что он работает “в кодировке unicode”.
происходит вызов _repr_() который возвращаетЛибо “repr”, либо “__repr__”, но никак не “_repr_”.
Офлайн
ZZZпочему нельзя использовать cp1251 ? Это же просто указатель в какой кодировке файл.
3. Почему нельзя использовать cp1251 (кстати, из первого примера вытекает, что если я открою блокнотом файл, напишу в первой строке “# coding: utf-8”, то при сохранении файл будет не в cp1251, так что следующий пункт…);
# coding: cp1251
print u'test'
print u'Проверка'
test
Проверка
ZZZу меня вики редактор 2 черточки подрят превращает в подчеркивание поэтому поставил по одной черте, сейчас сделал вставку html для этого слова :)происходит вызов _repr_() который возвращаетЛибо “repr”, либо “__repr__”, но никак не “_repr_”.
Офлайн
o7412369815963Я о том, что использовать надо только utf-8. Всегда и везде.
почему нельзя использовать cp1251 ? Это же просто указатель в какой кодировке файл.
Офлайн