Метод кодирования строки Python - PullRequest
6 голосов
/ 03 марта 2011

В Python есть метод encode в строках Юникода для кодирования из Юникода в строку байтов.Есть метод decode в строке, чтобы сделать обратное.

Но я запутался, что метод encode в строке для?

Ответы [ 3 ]

10 голосов
/ 03 марта 2011

Это полезно для нетекстовых кодеков.

>>> 'Hello, world!'.encode('hex')
'48656c6c6f2c20776f726c6421'
>>> 'Hello, world!'.encode('base64')
'SGVsbG8sIHdvcmxkIQ==\n'
>>> 'Hello, world!'.encode('zlib')
'x\x9c\xf3H\xcd\xc9\xc9\xd7Q(\xcf/\xcaIQ\x04\x00 ^\x04\x8a'
5 голосов
/ 03 марта 2011

Сначала декодируется в Unicode с использованием кодировки по умолчанию, затем кодируется обратно в байтовую строку.

>>> import sys
>>> sys.getdefaultencoding()
'ascii'
>>> sys.setdefaultencoding('latin-1')
>>> '\xc4'.encode('utf-8')
'\xc3\x84'

Здесь '\xc4' - это Latin-1 для Ä, а '\xc3\x84' - для UTF-8 дляÄ.

0 голосов
/ 03 марта 2011

Почему бы вам самим не прочитать прекрасную документацию по Python?

http://docs.python.org/release/2.5.2/lib/string-methods.html

"" "encode ([encoding [, errors]]) Возвращает закодированную версию строки. Кодировка по умолчанию - текущая кодировка строки по умолчанию. Ошибки могут быть заданы для установки другой схемы обработки ошибок. Значение по умолчанию для ошибок: 'строгий', означающий, что ошибки кодирования вызывают UnicodeError. Другими возможными значениями являются 'игнорировать', 'заменить', 'xmlcharrefreplace', 'backslashreplace' и любое другое имя, зарегистрированное с помощью codecs.register_error, см. раздел 4.8.1. Список о возможных кодировках см. раздел 4.8.3. Новое в версии 2.0. Изменено в версии 2.3: добавлена ​​поддержка 'xmlcharrefreplace' и 'backslashreplace' и других схем обработки ошибок. "" "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...