Eine Erfahrung: ini_set("default_charset", "UTF-8") und Speichern von Blobs
Verfasst: Mi 24. Mär 2021, 12:21
Hallo zusammen,
ich schreibe folgende Erfahrung mal als Info, für den Fall, dass vielleicht auch andere
auf die Idee kommen, mit einem ISO8859_1-Web-Server Blobs in einer UTF8-DB speichern
zu wollen / müssen.
Mein Web-Server läuft noch in der Standard-Konfiguration unter ISO8859_1.
Für mein neues DMS (Dokument-Management-System) setze ich jedoch auf UTF8,
weil ich in naher Zukunft auf meine Bestands-Daten dorthin konvertieren werde,
damit die Plagerei mit ISO8859_1 ein Ende hat.
Um das DMS in meinem ISO8859_1-Umfeld trotzdem schon mal testen zu können,
setze ich am Anfang der Scripte ein "ini_set("default_charset", 'UTF-8');".
Das funktioniert mit normalen Daten auch ganz gut, aber mit Blob's nicht.
Wenn ich auf die DB einen Connect mit CharSet = 'UTF8' absetze, dann hängt sich das Scirpt
nach einem fbird_query auf (friert ein), OHNE eine Fehler-Meldung zu geben.
Es geht nichts mehr. Nur das Script abbrechen und neu starten hilft dann nicht. Man muss noch vorher
den FB-Server beenden und die offenen Verbindungen kappen.
Lasse ich am Script-Anfang das "ini_set" weg, dann bleibt das Script beim fbird_query nicht hängen,
speichert aber das Blob nicht.
Nur wenn ich die DB mit "CharSet'] = 'ISO8859_1'" verbinde, dann wird das Blob erfolgreich gespeichert,
egal ob unter "ini_set("default_charset", 'UTF-8');" oder "ini_set("default_charset", 'ISO8859_1');".
Ich schließe daraus, dass der Treiber die "ini_set"-Angabe ignoriert, sondern nur die Server-Konfiguration
akzeptiert und nur mit einer Verbindung über den dort hinterlegten CharSet problemlos funktioniert, also
auch bei Blob's.
Gruss
Hamburgo
ich schreibe folgende Erfahrung mal als Info, für den Fall, dass vielleicht auch andere
auf die Idee kommen, mit einem ISO8859_1-Web-Server Blobs in einer UTF8-DB speichern
zu wollen / müssen.
Mein Web-Server läuft noch in der Standard-Konfiguration unter ISO8859_1.
Für mein neues DMS (Dokument-Management-System) setze ich jedoch auf UTF8,
weil ich in naher Zukunft auf meine Bestands-Daten dorthin konvertieren werde,
damit die Plagerei mit ISO8859_1 ein Ende hat.
Um das DMS in meinem ISO8859_1-Umfeld trotzdem schon mal testen zu können,
setze ich am Anfang der Scripte ein "ini_set("default_charset", 'UTF-8');".
Das funktioniert mit normalen Daten auch ganz gut, aber mit Blob's nicht.
Wenn ich auf die DB einen Connect mit CharSet = 'UTF8' absetze, dann hängt sich das Scirpt
nach einem fbird_query auf (friert ein), OHNE eine Fehler-Meldung zu geben.
Es geht nichts mehr. Nur das Script abbrechen und neu starten hilft dann nicht. Man muss noch vorher
den FB-Server beenden und die offenen Verbindungen kappen.
Lasse ich am Script-Anfang das "ini_set" weg, dann bleibt das Script beim fbird_query nicht hängen,
speichert aber das Blob nicht.
Nur wenn ich die DB mit "CharSet'] = 'ISO8859_1'" verbinde, dann wird das Blob erfolgreich gespeichert,
egal ob unter "ini_set("default_charset", 'UTF-8');" oder "ini_set("default_charset", 'ISO8859_1');".
Ich schließe daraus, dass der Treiber die "ini_set"-Angabe ignoriert, sondern nur die Server-Konfiguration
akzeptiert und nur mit einer Verbindung über den dort hinterlegten CharSet problemlos funktioniert, also
auch bei Blob's.
Gruss
Hamburgo