Найти - Пользователи
Полная версия: статья "Кодировки в python"
Начало » Флейм » статья "Кодировки в python"
1 2 3
o7412369815963
увидел очередной топик про кодировки в “Python для новичков”, вспомнил что у меня знакомые признавались что путаются в кодировках, и решил написать статью. Написал про кодировки так как я их понимаю.

прошу экспертов, у кого есть лишние 5 мин, посмотреть статью, указать на ошибки, чем дополнить. буду благодарен.

сама статья
Zubchick
алилуя. Прикрепите топик xD

Добавьте там тока пометочку про третий питон и о том, что статья о ветке 2.x
o7412369815963
Zubchick
Добавьте там тока пометочку про третий питон и о том, что статья о ветке 2.x
готово :)
ZZZ
Хм… Не очень грамотно.
В python есть 2 вида кодировок: рабочая(внутренняя) - unicode и внешняя - str
Очень важно понимать, что unicode, это не кодировка! Это высокоуровневый объект для работы с символьными данными, или, проще говоря, с текстом. А str, это просто массив байт, которыми можно кодировать символы… А можно и не кодировать.
Дальше читать не стал, ИМХО настолько фундаментальная ошибка в первой же строчке говорит о том, что переделывать надо всё.
Zubchick
>> Дальше читать не стал, ИМХО настолько фундаментальная ошибка в первой же строчке говорит о том, что переделывать надо всё.

wine это эмулятор программ виндовз, чтобы запустить вашу программу под wine сделайте это…
дальше читать не стал, вайн это не эмулятор!!
o7412369815963
ZZZ
Очень важно понимать, что unicode, это не кодировка! Это высокоуровневый объект для работы с символьными данными, или, проще говоря, с текстом.
я слазил на сам python.org - http://docs.python.org/tutorial/introduction.html#unicode-strings
там пишут что в питоне есть Unicode object который работает с Unicode data, далее ссылка на http://www.unicode.org/ где пишут что Unicode - универсальная кодировка где к каждому существующему символу присвоен уникальный код (число).

в питоне есть такой объект - unicode, но я пишу про кодировку unicode.

ща наверно как-нибудь укажу это в статье.
o7412369815963
o7412369815963
ща наверно как-нибудь укажу это в статье.
все, написал и про объекты и про кодировки
ZZZ
Zubchick, не цепляйся. Мне кажется, что лучше сразу давать правильные понятия и определения, чтобы не вводить новичков в заблуждение. А то это как в школе: до какого-то класса говорят, что нельзя из меньшего вычесть большее…

объект unicode работает с текстом в кодировке unicode
Оно, в общем-то правильно, но запутано. Тут не важен тот факт, что он работает “в кодировке unicode”.
Ну да ладно, у меня ощущение, что я начал придираться.
Скажу так: мне не нравятся понятия внешней и внутренней кодировок.
1. ИМХО, куда важнее объяснить разницу между str и unicode;
2. Понятие кодировки вывода (в винде cp866, в никсах обычно utf-8);
3. Почему нельзя использовать cp1251 (кстати, из первого примера вытекает, что если я открою блокнотом файл, напишу в первой строке “# coding: utf-8”, то при сохранении файл будет не в cp1251, так что следующий пункт…);
4. Почему нужно использовать нормальные редакторы, вместо блокнота;
5. repr, это далеко не всегда тоже, что str или .encode.

P.S.
происходит вызов _repr_() который возвращает
Либо “repr”, либо “__repr__”, но никак не “_repr_”.
o7412369815963
ZZZ
3. Почему нельзя использовать cp1251 (кстати, из первого примера вытекает, что если я открою блокнотом файл, напишу в первой строке “# coding: utf-8”, то при сохранении файл будет не в cp1251, так что следующий пункт…);
почему нельзя использовать cp1251 ? Это же просто указатель в какой кодировке файл.

сейчас сделал в виндовом блокноте файл
# coding: cp1251

print u'test'
print u'Проверка'
результат:
test
Проверка
в linux тот же результат

ZZZ
происходит вызов _repr_() который возвращает
Либо “repr”, либо “__repr__”, но никак не “_repr_”.
у меня вики редактор 2 черточки подрят превращает в подчеркивание поэтому поставил по одной черте, сейчас сделал вставку html для этого слова :)
ZZZ
o7412369815963
почему нельзя использовать cp1251 ? Это же просто указатель в какой кодировке файл.
Я о том, что использовать надо только utf-8. Всегда и везде.
Ну и главное в моём замечании то, что новичок не всегда поймёт разницу между указанием кодировки интерпретатору и реальной кодировкой файла.
Ладно, я больше не буду придираться – посмотрим, что другие скажут.
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