dedlfix: Insert Into in SQL-Datenbank schlägt fehl (base64/utf-8)

Beitrag lesen

echo $begrüßung;

Zeigt man sich den decodierten String mittels eines Hex-Editors an, sieht man das Zeichen, welches mit 00 definiert ist.
Sprich es ist das String-Trennungszeichen, somit hat sich das Programm eigentlich richtig verhalten.

Nicht für PHP-Verhältnisse, da wird ein String nicht mit einem Null-Byte beendet. Allerdings kann es sich um eine fehlerhafte Implementierung handeln, die nicht binary-safe ist. Es wäre fatal, könnte man keine Null-Bytes in binären Daten speichern. Es kann aber auch eine Einschränkung seitens der von PDO verwendeten MSSQL-API handeln.

Lösung des Problems:
$String = str_replace(chr(0), "", $String);
Danke für deine Bemühungen, es funktioniert jetzt tadellos.

Hoffentlich nicht nur beim Speichern sondern auch beim Verarbeiten nach dem Auslesen. Da du hier Kürzungen vornimmst, verändert sich die String-Länge. Nicht dass die noch irgendwo hinterlegt ist und nun nicht mehr stimmt.

echo "$verabschiedung $name";