Декодирование данных Python base64 и преобразование порядка байтов - PullRequest
0 голосов
/ 06 августа 2010

Я сейчас использую модуль python base64 для декодирования XML-файла, закодированного в base64, и я нашел все данные (их тысячи, например, в «ABC ....», «ABC»... "были данные, закодированные в base64) и добавьте их в строку, скажем s, затем я использую base64.b64decode (s) для получения результата, я не уверен в результате декодирования, была ли это строкаили байты?Кроме того, как следует преобразовывать такие декодированные данные из так называемого «порядка сетевых байтов» в «порядок байтов хоста»?Спасибо!

Ответы [ 3 ]

2 голосов
/ 06 августа 2010

Материал Base64, закодированный или нет, хранится в строках.Порядок байтов является проблемой только в том случае, если вы имеете дело с не-символами (C, int, short, long, float и т. Д.), И тогда я не уверен, как это будет связано с этой проблемой.Кроме того, я не думаю, что объединение строк в кодировке base64 является допустимым.

>>> from base64 import *
>>> b64encode( "abcdefg" )
'YWJjZGVmZw=='
>>> b64decode( "YWJjZGVmZw==" )
'abcdefg'
>>> b64encode( "hijklmn" )
'aGlqa2xtbg=='
>>> b64decode( "aGlqa2xtbg==" )
'hijklmn'
>>> b64decode( "YWJjZGVmZw==aGlqa2xtbg==" )
'abcdefg'
>>> b64decode( "YWJjZGVmZwaGlqa2xtbg==" )
'abcdefg\x06\x86\x96\xa6\xb6\xc6\xd6\xe0'
2 голосов
/ 06 августа 2010

Каждая строка в кодировке base64 должна быть декодирована отдельно - вы не можете объединить кодированные строки (и получить правильное декодирование).
Результатом декодирования является строка с байтовым буфером - в Python они эквивалентны.
Относительно порядка сети / хоста - последовательности байтов не имеют такого «порядка» (или порядкового номера) - это имеет значение только при интерпретации этих байтов как слова / целые числа большей ширины (т.е. более 8 бит).

1 голос
/ 06 апреля 2011

У этого парня хороший основанный на питоне b64decode parser http://groups.google.com/group/spctools-discuss/browse_thread/thread/a8afd04e1a04cde4

Извлечение пиковых списков из mzXML в "Python"

...