Search code examples
pythonpython-3.xrot13

How to ROT13 encode in Python3?


The Python 3 documentation has rot13 listed on its codecs page.

I tried encoding a string using rot13 encoding:

import codecs
s  = "hello"
os = codecs.encode( s, "rot13" )
print(os)

This gives a unknown encoding: rot13 error. Is there a different way to use the in-built rot13 encoding? If this encoding has been removed in Python 3 (as Google search results seem to indicate), why is it still listed in Python3 documentation?


Solution

  • Aha! I thought it had been dropped from Python 3, but no - it is just that the interface has changed, because a codec has to return bytes (and this is str-to-str).

    This is from 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]