shiza
Сен. 3, 2008 18:15:35
hsbc
спасибо, решил проблему так
# -*- coding: cp1251 -*-
print “по русский !”.decode(“cp1251”)
Это у тебя как-то случайно наверное получилось.
Рекомендую таки разобраться в этом вопросе. А то наверняка косяки еще вылезут.
hsbc
Сен. 3, 2008 18:17:58
pythonwin
hsbc
print “по русский !”.decode(“cp1251”)
почитай доклад Использование Unicode в Python
тока начал читать, благодарю
shiza
вроде пока везде пашет……
pythonwin
Сен. 3, 2008 18:20:04
hsbc
вроде пока везде пашет……
шаманизм - если хочешь чтобы работало всегда - читай доку ;)
hsbc
Сен. 3, 2008 18:23:33
проблема в том, что всё что в доке пока написанно нехочет работать)))))))))))))
либо я кривой кодер, либо хз)))
shiza
Сен. 3, 2008 18:29:16
я использую такой подход.
Все строки у меня в коде - юникодные.
Кодировка скрипта - UTF-8: это означает что у меня в начале скрипта прописано # -*- coding: utf-8 -*-, и что еще важно - сам файл скрипта сохранен в кодировке UTF-8.
В этом случае все что я напишу внутри скрипта: a = u'мама мыла раму' - автоматические переводится в юникод (кстати надо заметить, что юникод и utf-8 - не одно и тоже!).
Если скрипту надо общаться с внешним миром, то при получении данных я декодирую их в юникод. И при выводе данных(например при выводе в консоль) кодирую их в ту кодировку, которую нужно.
Бывают случаи, когда это перекодировка входных, выходных данных происходит неявно (без моего участия): в некоторых фреймворках, средах разработки и пр.
hsbc
Сен. 3, 2008 18:39:37
в твоём варианте у меня пишет
Encoding problem utf-8
кстате ман по строкам в юникоде прочёл
в самом питоновском интерпритаторе всё пашет(наверно потому что в интерпритаторе код уже юникодный)
а вот если через цмд запускать, то уже нихрена не пашет
shiza
Сен. 3, 2008 18:50:31
Скорее всего у тебя проблема с кодировкрй скрипта.
Убедись что она utf-8. Раньше у меня еще бывала трабла (на старых версиях питона кажется) - если редактор сохранял файл с BOM (маркер такой для UTF8 в начале файла).
P.S. покажи свой вариант.
j2a
Сен. 3, 2008 19:14:26
shiza
я использую такой подход.
Я верю, что shiza всё делает правильно, лишь опечатался в посте. Я исправлю его опечатки :)
Все строки у меня в коде - юникодные.
Кодировка скрипта - UTF-8: это означает что у меня в начале скрипта прописано # coding: utf-8, и что еще важно - сам файл скрипта сохранен в кодировке UTF-8.
В этом случае все что я напишу внутри скрипта: a = u'мама мыла раму' - автоматические переводится в юникод (кстати надо заметить, что юникод и utf-8 - не одно и тоже!).
Если скрипту надо общаться с внешним миром, то при получении данных я декодирую их в юникод. И при выводе данных(например при выводе в консоль) кодирую их в ту кодировку, которую нужно.
Бывают случаи, когда это перекодировка входных, выходных данных происходит неявно (без моего участия): в некоторых фреймворках, средах разработки и пр.
shiza
Сен. 3, 2008 19:26:36
j2a
Ты прав. спасибо. поправил.
hsbc
Сен. 3, 2008 19:28:41
в данном случае получается такое
C:\Documents and Settings\HSBC>C:\p\python.exe C:\1.py
╨┐╤А╨╕╨▓╨╡╤В ╨▓╤Б
блин на счёт той Доки Юри Юривеча, мне не ответили