Как ROT13 кодировать в Python3?

Документация Python 3 имеет rot13, перечисленные на егостраница кодеков.

Я попытался кодировать строку с использованием кодировки rot13:

<code>import codecs
s  = "hello"
os = codecs.encode( s, "rot13" )
print(os)
</code>

Это даетunknown encoding: rot13 ошибка. Есть ли другой способ использовать встроенную кодировку rot13? Если эта кодировка была удалена в Python 3 (как показывают результаты поиска Google), почему она все еще указана в документации по Python3?

 Ashwin Nanjappa14 мая 2012 г., 03:14
agf: функция codecs.Codec (). encode () принимает только строковый ввод, в типе кодировки нет параметров для передачи.
 agf14 мая 2012 г., 02:37
Ты пробовал простоs.encode("rot13") или жеs.encode("rot_13")? Я не думаю, что есть такая вещь, какcodecs.encode, простоcodecs.Codec().encode
 nyuszika7h26 февр. 2014 г., 14:47
Вы не должны теньos, & # XCA0; _ & # xCA0;

Ответы на вопрос(2)

Решение Вопроса

Ага! Я думал, что он был удален из Python 3, но нет - просто изменился интерфейс, потому что кодек должен возвращать байты (а это str-to-str).

Это изhttp://www.wefearchange.org/2012/01/python-3-porting-fun-redux.html :

import codecs
s   = "hello"
enc = codecs.getencoder( "rot-13" )
os  = enc( s )[0]

В Python 3.2+ естьrot_13 str-to-str codec:

import codecs

print(codecs.encode("hello", "rot-13")) # -> uryyb

Ваш ответ на вопрос