base64要求把每三个8bit的字节转换为四个6bit的字节(3*8=4*6
),然后把6bit的字节再添两位高位0,组成四个8bit字节,也就是说,转换后的字符串理论上将要比原来的长1/3。
输出:
260 bytes before encoding348 bytes after encodingIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KaW1wb3J0IGJhc2U2NAoKaW5pdGlhbF9kYXRhID0gb3BlbihfX2ZpbGVfXywgJ3J0JykucmVhZCgpCgplbmNvZGVkX2RhdGEgPSBiYXNlNjQuYjY0ZW5jb2RlKGluaXRpYWxfZGF0YSkKCnByaW50ICclZCBieXRlcyBiZWZvcmUgZW5jb2RpbmcnICUgbGVuKGluaXRpYWxfZGF0YSkKcHJpbnQgJyVkIGJ5dGVzIGFmdGVyIGVuY29kaW5nJyAlIGxlbihlbmNvZGVkX2RhdGEpCnByaW50CnByaW50IGVuY29kZWRfZGF0YQo=输出:
Original: This is the data, in the clear.Encoded: VGhpcyBpcyB0aGUgZGF0YSwgaW4gdGhlIGNsZWFyLg==Decoded: This is the data, in the clear.默认的base64字母表可能会使用+和/,而这些字符可能出现在URL中,因此必须为这些字符指定可选择的编码情况,+由符号-来代替,而/由下划线_来代替,其他字母表不变。
# -*- coding: utf-8 -*-import base64for original in ['/xfb/xef', '/xff/xff']: print 'Original :', repr(original) print 'Standard encoding:', base64.standard_b64encode(original) print 'URL-safe encoding:', base64.urlsafe_b64encode(original) print输出:
Original : '/xfb/xef'Standard encoding: ++8=URL-safe encoding: --8=Original : '/xff/xff'Standard encoding: //8=URL-safe encoding: __8=新闻热点
疑难解答