6.10 ç¼–ç �è§£ç �Base64æ•°æ�®Â¶
问题¶
ä½ éœ€è¦�使用Base64æ ¼å¼�è§£ç �或编ç �二进制数æ�®ã€‚
解决方案¶
base64 模å�—䏿œ‰ä¸¤ä¸ªå‡½æ•° b64encode() and b64decode() å�¯ä»¥å¸®ä½ 解决这个问题。例如;
>>> # Some byte data
>>> s = b'hello'
>>> import base64
>>> # Encode as Base64
>>> a = base64.b64encode(s)
>>> a
b'aGVsbG8='
>>> # Decode from Base64
>>> base64.b64decode(a)
b'hello'
>>>
讨论¶
Base64ç¼–ç �仅仅用于é�¢å�‘å—节的数æ�®æ¯”如å—节å—符串和å—节数组。 æ¤å¤–,编ç �处ç�†çš„输出结果总是一个å—节å—符串。 å¦‚æžœä½ æƒ³æ··å�ˆä½¿ç”¨Base64ç¼–ç �的数æ�®å’ŒUnicodeæ–‡æœ¬ï¼Œä½ å¿…é¡»æ·»åŠ ä¸€ä¸ªé¢�外的解ç �æ¥éª¤ã€‚例如:
>>> a = base64.b64encode(s).decode('ascii')
>>> a
'aGVsbG8='
>>>
当解ç �Base64的时候,å—节å—符串和Unicode文本都å�¯ä»¥ä½œä¸ºå�‚数。 但是,Unicodeå—符串å�ªèƒ½åŒ…å�«ASCIIå—符。