String mit NULL-Value in SQLite schreiben
Verfasst: Samstag 28. August 2010, 12:51
Hallo,
wie kann man eine String mit NULL Value (also \x00) in einen SQLite BLOB-Feld schreiben?
Der String kommt vom Lesen einer Datei im Binär-Modus, also z.B.
Schreibt man dann "data" so in in eine BLOB-Feld, klappt der Schreibvorgang nur bis zum 1. "\x00". Also wenn der String mit "\xff\xd8\xff\xe0\x00\x10JFIF" wird nur bis "\xe0" geschrieben und dann nicht mehr.
Eine Fehlermeldung wird nicht ausgegeben, d.h. das Schreiben (und auch Lesen) des "gekürzten" Strings klappt.
AFAIK liegt das daran, dass \x00 standardmäßig als Dateienden angesehen wird, d.h. Python "denkt" an dieser Stelle: "das war's".
Gruß, noisefloor
wie kann man eine String mit NULL Value (also \x00) in einen SQLite BLOB-Feld schreiben?
Der String kommt vom Lesen einer Datei im Binär-Modus, also z.B.
Code: Alles auswählen
with open('bild.jpg','rb') as f:
data = f.read()
Eine Fehlermeldung wird nicht ausgegeben, d.h. das Schreiben (und auch Lesen) des "gekürzten" Strings klappt.
AFAIK liegt das daran, dass \x00 standardmäßig als Dateienden angesehen wird, d.h. Python "denkt" an dieser Stelle: "das war's".
Gruß, noisefloor