Und ich meine nicht:
Code: Alles auswählen
str(b'\x00t\x00e\x00s\x00t', 'ASCII')
Code: Alles auswählen
bytes('test', 'ASCII')
(und da hauptsächlich 2.x user probleme mit encoding haben: ich hab 3.x)
Code: Alles auswählen
str(b'\x00t\x00e\x00s\x00t', 'ASCII')
Code: Alles auswählen
bytes('test', 'ASCII')
Code: Alles auswählen
>>> '\x00t\x00e\x00s\x00t'.decode('UTF-16BE')
u'test'
Code: Alles auswählen
>>> '\xfe\xff\x00t\x00e\x00s\x00t'.decode('UTF-16')
u'test'
Welchen teil des Satzes "Und ich meine nicht:" hast du nicht verstanden?jerch hat geschrieben:Dein obiger String wird von UTF-16BE problemlos dekodiert:Code: Alles auswählen
>>> '\x00t\x00e\x00s\x00t'.decode('UTF-16BE') u'test'
Kaum wieder da, schon gleich die Attitüde mitgebracht... welchen Teil von jerch's Beispielen hast *DU* nicht verstanden? Deine Daten sind UTF-16 oder UCS2-kodiert, aber ohne BOM - also musst du das wahlweise davor packen, oder als Teil des Dekoders mitgeben. So einfach ist das. Wenn man weiss, was man tut... siehe unten.Py-Prog hat geschrieben:Welchen teil des Satzes "Und ich meine nicht:" hast du nicht verstanden?jerch hat geschrieben:Dein obiger String wird von UTF-16BE problemlos dekodiert:Code: Alles auswählen
>>> '\x00t\x00e\x00s\x00t'.decode('UTF-16BE') u'test'
![]()
Na, dann waere eine freundliche Nachfrage statt anmassender "welchen teil des Satzes hast du nicht verstanden"-Aeusserungen angebrachter, oder?Py-Prog hat geschrieben:[
Und ehrlich gesagt hab ich nicht geschnallt was ihr in den letzten beiden Beiträgen meint.
Code: Alles auswählen
Client: b'\x02\x00\x1d\x00L\x00a\x00p\x00i\x00s\x00L\x00a\x00z\x00u\x00l\x00i\x00;\x001\x00.\x001\x001\x00.\x001\x001\x00.\x001\x001\x001\x00:\x001\x001\x001\x001\x001'
Server: b'\x02\x00\x01\x00-'
Client: b'\x01\x00\x00\x00\x1d\x00\x0b\x00L\x00a\x00p\x00i\x00s\x00L\x00a\x00z\x00u\x00l\x00i\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
Server: b'\x01\x00\r\xebU\x00\x00\x00\x07\x00d\x00e\x00f\x00a\x00u\x00l\x00t\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x10\x06\x00\x00+t\x00\x00\x00\x14\x00\x00+#\xca\x00\x00\x00\x00\x04\x00\x00\x00\x00\x03|\xfc2\x03\x00\x08\x00\xa7\x005\x00\xa7\x006\x00\xa7\x004\x00\xa7\x005\x03\x00\x08\x00\xa7\x004\x00\xa7\x005\x00\xa7\x003\x00\xa7\x004'
Code: Alles auswählen
>>> b'\x00\x02\x00\x1d\x00L\x00a\x00p\x00i\x00s\x00L\x00a\x00z\x00u\x00l\x00i\x00;\x001\x00.\x001\x001\x00.\x001\x001\x00.\x001\x001\x001\x00:\x001\x001\x001\x001\x001'.decode('UTF_16BE')
'\x02\x1dLapisLazuli;1.11.11.111:11111'
Code: Alles auswählen
b'\x00\x01\x00\x00\x00\x1d\x00\x0b\x00L\x00a\x00p\x00i\x00s\x00L\x00a\x00z\x00u\x00l\x00i\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
Ich kann das leider nicht hernehmen weil das nur für 2.x ist.Hyperion hat geschrieben:Von Minecraft war ja bisher noch nie die Rede... und auf den ersten Blick sieht das für mich definitiv nach einem Binärformat aus! Gibt es dafür keine fertige Python-Lib, die Du für die Kommunikation verwenden kannst? Ansonsten solltest Du Dich mit speziellen Libs zum Erstellen eines Parsers für binäre Protokolle befassen, z.B. construct.