здравствуйте. Тут мы разберем, как и когда надо кодировать файлы при программировании на питоне.
Русский текст
Если вы сохраняете файл в unicode и при этом есть русский текст, то его оформляют в виде строк unicode.
Посмотреть, как оформлять русский текст в юникоде можно в консоли набрав:
Print "русский текст"
Вам выдаст строки.
А если вы работаете с кодировкой utf-8 то вам будет куда удобние. Для декодирования русского текста в utf-8 в начале програмы наберите:
Def ru(x): return x.decode('utf-8')
А русский текст пишем например так:
Appuifw.note(ru(сегодня я дома))
Так писать куда удообнее.
Если будут проблемы с кодировкой, то в начале проги импортируйте модуль sys и выполните такую команду:
Если вы еще не импортировали данный модуль, то напишите:
Import sys
А ниже команду:
Sys.setdefaultencoding('utf-8')
Так плавно мы подошли к кодированию например текста для шифрования.
Метод encode для кодирования, а decode для декодирования.
эти методы не могут просто висеть где попало, а пишутся так:
Def encode(x):
Return x.encode('base64')
Print (decode(felix))
Кодируем имя феликс в шифр.
Ну тут я остановлюсь т.к. Об этом можно говорить сотни лет, например отправлять данные в буфер обмена в шифр.виде доставать и разкодировать.
Остальное читайте в инете, а азы я объяснил.
Комментарии 11
По поводу функции setdefaultencoding модуля sys, может быть что будет писпть что функция не существует, что-бы исправить это необходимо перезагрузить модуль
import sys
reload(sys)
sys.setdefaultencoding(\'utf-8\')
это сайт сожрал все знаки пунктуации. Не набрасывайтесь на парня, лучше подскажите что и как поправить, возможно так лучше, возможно этак. По программированию давно не пишут уже тут.
и кто из вас мне минус даже 2 поставил? А то прихожу из института и вижу, что моя репутация 00.
-------------
Добавлено в 16.47: ну а статью я потом на днях переделаю. Подумаю, что тут можно добавить
статью нужно переделывать. во первых некрасиво оформлено, во вторых сухо, толком ничего не написано.
Felix.potter
я просто к тому пишу.
что вот все говорят, чтобы работали русские символы пишите
Def ru(x): return x.decode(\'utf-8\')
поэтому раз ты взялся за такую татью, распиши. что это за функция такая вообще. что она делает. ведь главное понять суть этой функции. ну и encode соответственно
если есть возможность сохранить в utf-8 то чего ради сохранять в юникоде. В нем текст я сегодня дома будет выглядить вот так:
Код
U'\\u0449 \\u0441\\u0435\\u0433\\u043e\\u0434\\u043d\\u0449 \\u0434\\u043e\\u043c\\u0410 писать так не очень-то удобно.Ну а base64 в любом случае годится. А сохранить в utf8 ну тут все логично:
Код:
def ru(x): return x.decode('utf8')
я новичок в питоне. и у меня много вопросов, потому что возможно много-го не знаю
подскажите мне новичку. как сохранить текст в unicod в файл.
я обычно сохраняю символы русские и английские в кодировке utf-8
[code=python]file.write(text.encode('utf-8'))[/соde]
а если файл скрипта у меня в utf8?
на мой взгляд, распиши в статье что такое decode и encode. самое главное понять что это такое.
А русский текст пишем например так:
Appuifw.note(ru(сегодня я дома))
Так писать куда удообнее.
а мне удобней писать так
[code=python]# coding: utf-8
appuifw.note(u'сегодня я дома')[/соde]
я к тому, что все что ты написал для питона 1.4.5, то что я привел это для второго питона
тоже необходимо указать в статье
эти методы не могут просто висеть где попало, а пишутся так:
Def encode(x):
Return x.encode('base64')
Print (decode(felix))
Кодируем имя феликс в шифр.
а это я вообще не поменял.
разве base64 это шифрование?
я думал это такая же кодировка.
спасибо.
ну так что ? когда переделаете статью то ? в таком виде да еще и для новичков ....или только для критики время хватает ? ))
0 ответить