SQLite: NUL-Zeichen in Strings führen zu überraschendem Verhalten

Nul Characters in Strings in SQLite

SQLite: NUL-Zeichen in Strings führen zu überraschendem Verhalten

SQLite erlaubt NUL-Zeichen (ASCII 0x00) in Strings, aber das kann zu Verwirrung führen: Funktionen wie length() und quote() ignorieren alles nach dem ersten NUL, und auch die CLI zeigt nur den Teil bis zum NUL an. Ein Beispiel zeigt, dass eine Abfrage wie WHERE b='abc' keine Zeile liefert, obwohl die Ausgabe 'abc' anzeigt, weil die tatsächliche Zeichenkette 'abc'||char(0)||'xyz' ist. Der Artikel erklärt, wie man eingebettete NULs erkennt (z.B. mit CAST als BLOB oder instr()) und wie man sie mit substr() und instr() entfernt.

Dies scheint ein Fehler zu sein. Aber so funktioniert SQLite.

Mehr von diesem Tag

2026-07-16