ascii(str) in hex

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
patrickk

ascii(str) in hex

Beitragvon patrickk » Montag 15. August 2005, 11:52

Hallo,


wie wandel ich einen string in hex um?
end = binascii.b2a_hex(file)

dies liefert ein anderes Ergebnis als in emacs zu sehen, wenn man in hex umschaltet...

Danke,

Patrick
Benutzeravatar
jgollers
User
Beiträge: 42
Registriert: Freitag 29. November 2002, 12:23
Wohnort: Kirchlengern

Re: ascii(str) in hex

Beitragvon jgollers » Montag 15. August 2005, 12:35

patrickk hat geschrieben:Hallo,


wie wandel ich einen string in hex um?
end = binascii.b2a_hex(file)

dies liefert ein anderes Ergebnis als in emacs zu sehen, wenn man in hex umschaltet...

Danke,

Patrick


Kann ich nicht bestätigen. Auf meinem Emacs ergibt die Zeichenkette

abcdefg....

61626364656667...

und das ist auch mein Ergebnis in Python.

Ist bei dir in "file" wirklich die Zeichenkette gespeichert???

Jörg Gollers
patrickk

Beitragvon patrickk » Montag 15. August 2005, 14:17

Hi,

wenn ich eine base64 Datei hiermit erst dekodiere und dann nach hex wandel sieht es anders aus als,wenn ich die datei in:
http://www.motobit.com/util/base64-decoder-encoder.asp
nach base64, max 84 per line... und das ergebnis dann in emca einlade und als hex anzeigen lasse. Was mache ich falsch?


def base64dec(file):
#decodes base64
tmp=file.decode('base64')
print ("Base64decode: "+tmp)
return tmp

def raw2hex(file):
end = binascii.b2a_hex(file)
print("HEX values: "+end+"Elemente: "+str(len(end)))
return end

test ="IB45bffxyGk7KE3uie"
tmp=base64dec(test)
res=raw2hex(tmp)
print(res)


bei emacs steht: 396d c3b7 c3b1 c388 693b 284d c3ae
das skript:f6688c

Liegt das an den komischen Zeichen? Hab zuerst vielendankfuer die
Hilfe erstellt, aber das sah gleich aus?

Patrick
:?
patrickk

Beitragvon patrickk » Montag 15. August 2005, 14:19

die webseite verwendet iso 8859-1

muss ich dies irgendwo einstellen? in base64... oder so?
patrickk

Beitragvon patrickk » Montag 15. August 2005, 15:05

Wenn ich print(val) ausgebe, und dies den base64 decodierten wert anzeigen soll habe ich unter anderem auch leere Kaestchen in der ausgabe. Dies ist bei der webseite nicht der fall? Ich habe scheinbar nicht den latin ...

wenn ich in dem skript ganz oben:

# -*- coding: iso-8859-1 -*-

eingebe aendert sich nichts... Hat jemand Ahnung, wie man das hinbekommt?


Patrick
BlackJack

Beitragvon BlackJack » Montag 15. August 2005, 23:00

patrickk hat geschrieben:Hi,

wenn ich eine base64 Datei hiermit erst dekodiere und dann nach hex wandel sieht es anders aus als,wenn ich die datei in:
http://www.motobit.com/util/base64-decoder-encoder.asp
nach base64, max 84 per line... und das ergebnis dann in emca einlade und als hex anzeigen lasse. Was mache ich falsch?


Die Daten gehen dabei nochmal durch den Webbrowser. Wer weiss was der mit binären Daten macht, wo er eigentlich Text erwartet. Bzw. was die GUI macht wenn sie beliebige Bytes anzeigen soll, die unter anderem auch nicht druckbare Steuerzeichen enthalten können.

Code: Alles auswählen

test ="IB45bffxyGk7KE3uie"
tmp=base64dec(test)
res=raw2hex(tmp)
print(res)



bei emacs steht: 396d c3b7 c3b1 c388 693b 284d c3ae
das skript:f6688c


Das Skript läuft bei mir nicht, weil `test` kein gültiges Base64 ist. Da fehlen noch Zeichen, oder '=' Zeichen, oder beides.

Zeig doch mal ein funktionierendes Beispiel.
patrickk

Beitragvon patrickk » Dienstag 16. August 2005, 08:32

Hi,


danke fuer die antwort. Habe das Problem entdeckt. In python funktioniert alles. Aber mein system hat die Zeichen anders dargestellt als auf einem anderen System. Daher kam bei mir was anderes raus... Ich glaube es hat etwas mit utf-8 und anderen Zeichensaetzen zu tun. Es fehlten ein paar zeichen. Bei 7bit/Symbol hat das nat. fatale auswirkungen auf alles was dahinter kommt...

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot], Google [Bot]