2013-04-20 47 views

回答

1

由非別名訪問他們通過codecs模塊似乎工作,在Python 3.2及以上:

>>> import codecs 
>>> codecs.decode(b"asdf", "base64_codec") 
b'j\xc7_' 
>>> codecs.encode(b"asdf", "base64_codec") 
b'YXNkZg==\n' 
>>> 

使用別名("base64"),Python的< 3.2,或bytes.decode似乎都失敗。

+0

這真的是最短的方式嗎?這有點糟糕。 – 2013-04-20 20:41:13

+0

@RamRachum從語義上講,在Python 3中,'encode'和'decode'專門用於unicode,這就是爲什麼'bytes'沒有'encode','str'沒有'decode'的原因。雖然它不如Python 2方便,但它將unicode與其他形式的文本/字節操作分開。 – agf 2013-04-21 00:01:30

+2

@RamRachum:這在任何宇宙中是如何「有點吸」?該代碼清晰,可讀,非常明顯,不是特別長? – 2013-04-22 13:10:02