Wpis z mikrobloga

Czemu base64.b64decode w pythonie decoduje wartosc string na '#x\86', a jak robie to np w node.js albo gdziekolwiek indziej to dostaje albo sam '#' albo random znaki ktore nic nie znacza( trojkaty itp)
#programowanie #python
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Koprowy: jeśli dobrze zrozumiałem Twoje pytanie, to tu rozchodzi się o format w jakim wyświetlane są dane.

'#x\86' to Pythonowy sposób zapisywania znaków spoza zakresu ASCII (czy Ty używasz Pythona 2?)

Zgaduję, że NodeJS po prostu wypisuje na chama co mu podrzucisz i wypisuje te krzaczki (bo to są jego znaki), a Python po prostu je enkoduje dla bezpieczeństwa (między innymi).
  • Odpowiedz
@morsik: Nie jestem w stanie określić wersji pythona bo mam tylko fragment kodu do analizy. Czyli jak obejść to zeby otrzymac z danego base64 encoded string wartosc z którą da się coś zrobić? Istnieje możliwość odtworzenia tego za pomocą bibliotek w JS`ie? Python zwraca swoje znaki '#\x86\x01' etc. potem uzywa struct.unpack('B',decodedValue[0:1])[0] & 0xF0 i dostaje liczbe i to samo chce zrobic w node.js ale nie mam pojecia co dzieje sie
  • Odpowiedz