Найти - Пользователи
Полная версия: Проблема с кодировкой
Начало » Python для новичков » Проблема с кодировкой
1 2 3 4 5 6 7
shiza
The gray Cardinal
Вот, например, разложившийся труп: http://www.opennet.ru/
OpenNet практически в том-же виде, в каком он есть сейчас (кроме некоторой косметики) - я помню еще в 2000 году =)
Ferroman
кодировок стало просто больше, соответственно всеобщий бардак только усилился
Есть предложение не усиливать бардак ещё больше и использовать utf-8.
The gray Cardinal
shiza
OpenNet практически в том-же виде, в каком он есть сейчас (кроме некоторой косметики) - я помню еще в 2000 году
Это да, но он отнюдь не мёртв ;).
Ferroman
Есть предложение не усиливать бардак ещё больше и использовать utf-8.
Отличное предложение, я только за :lol:. Только это ничего не изменит ;).
Это всё равно, что попытаться внедрить XHTML во всём Интернете. Несмотря ни на что, все ведущие браузеры поддерживают самую разнузданную разметку, а половина Интернета этой самой разнузданной разметкой интенсивно пользуется. И так будет ещё долгие годы (если вообще не всегда). А cp1251 — это Кащей бессмертный, с которым ты не справишься, пока жива Windows. И так будет ещё долгие годы (если, опять-таки, вообще не всегда :)).
Ferroman
Честно говоря странно - у меня в Win никогда не было проблем с utf-8.
Тут не совсем уместно сравнивать с провалом xhtml - причины его провала специфические. Лично для меня использование юникода делает так, что про многие проблемы я просто никогда не узнаю.
The gray Cardinal
Ferroman
Лично для меня использование юникода делает так, что про многие проблемы я просто никогда не узнаю.
Насколько я понимаю, эта фраза верна только для Linux (может, и для Мак, но не суть). Под Windows ты узнаешь все проблемы в любом случае :). Так что под Windows у UTF-8 для исходника на данном этапе практически нет реальных преимуществ (для русскоязычного пользователя Python).
Ferroman
Но и нет особых недостатков. За то я даром получаю отсутствие проблем в линуксе.
ZZZ
shiza
у UTF-16 есть еще один минус. Английские буквы занимают в ней по 2 байта, в отличие от UTF-8, в которой они по одному байту. Поэтому исходники в ней весят в 2 раза больше %)
ИМХО, это не большой минус, с сегодняшними средствами связи… /и это говорит человек, сидящий на gprs…/
Но есть и плюсы… Ты никогда не пробовал писать обработчик UTF-8? В UTF-16 можно просто читать по два байта…

The gray Cardinal
Это особенность мака?
Нет, это особенность всех нормальных редакторов, которые открывают текст как UTF-8.

В MacOS X, кстати, хрен поймёшь, что с кодировками – но MacCirillic, то явно какой-то уникод. Но все нормальные редакторы (TextMate, TextWrangler…) замечательно работают с UTF-8.
Но в тоже время в терминалке…
 ttys000 /Users/zzz $ locale                                            [0:52]
LANG="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_CTYPE="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_ALL=
Здесь слишком разделены графика и система. Но в тоже время в общем система куда логичнее любого никса. /про маздай я вообще молчу…/
kvazar
Здравствуйте, Многоуважаемые. У меня опять проблема -(
Никак я не могу всё догнать…
В python 3.0 исходник в utf8 русские буквы прекрасно выводятся. Всё хорошо.
Но при попытке прочесть текстовый файл в кодировке utf8, выводятся кракозябры.
Похоже он его читает, как cp1251. Что делать?.. Почему он не читает файл в исходной кодировке?..
——-Добавлено
Соображения есть, что строка это последовательность байтов, которая не хранит данных о кодировке и поэтому питон берёт кодировку из локали, но непонятно почему, если изначально в исходнике скрипта строка в utf или ansi, то и при выводе она той же кодировки?..
——-
Пролистав интернет я так и не понял можно ли установить локаль utf8 на веб -сервер(денвер) для питона под Win Vista?
И ещё вопрос, который меня по прежнему мучает..
Я никак не могу точно осмыслить, что же такое юникод и как его понимается в питоне.
Я конечно читал, что стандарт кодирования, но многие юникодом называют кодировки utf.
В питоне, как я это понимаю юникод это непосредственно коды из стандарта?
Тоесть пофиг дым в какой кодировке у меня строка(utf,ansi), она будет преобразована в код стандарта юникод(в 3.0)?
Но тогда я не понимаю почему после преобразования в юникод при выводе текст выдаётся в исходной кодировке, а не согласно локали…
Одно понимаю, что пишу много ахинеи, но больше обратиться некуда, а закрыть глаза и писать на ощупь не хочу.
на всякий случай код:
——-
#!/usr/local/bin/python
# -*- coding: utf-8 -*-
print(“Content-type: text/html; charset: utf-8\n\n”)
import cgitb; cgitb.enable()
f = open(“test.txt”,“r”)
print(f.read())
f.close()
kvazar
А в ответ тишина -)
Неужели больше никому это не интересно?
The gray Cardinal
С Python 3.0 пока мало кто работает.
ActivePython: решение проблем с кодировками
http://forum.script-coding.info/viewtopic.php?pid=16902#p16902
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