dedlfix: „ und “ in MySQL Schreiben

Beitrag lesen

Tach!

Das ist für den gezeigten Fall nicht notwendig, weil zum einen die Stringersetzungsfunktion überhaupt nicht benötigt wird, wenn man es richtig macht und zum anderen bei korrekter UTF-8-Kodierung der Nadel und des Heuhaufens die Verwendung der Byte-Funktionen zumindest beim Stringersetzen keine Probleme bereitet.

Ja, freilich doch, definiere "richtig".

Hab ich gemacht. Siehe die beiden Grundsätze. Wenn alle Zeichenkodierungsangaben korrekt deklariert sind, gibt es normalerweise keine Unstimmigkeiten zwischen den Beteiligten. Es sei denn, jemand macht mutwillig was anderes, dann ist es im Allgemeinen egal, weil diese Daten dann sicherlich nicht im Kontext der Anwendung sinnvoll sind. Zu dem kämen noch Fehlkonfigurationen von Browsern aufgrund von Unwissen, doch die sind eher selten. Man könnte noch mit gutem Willen auf korrekte UTF-8-Kodierung prüfen und ansonsten Latin1 annehmen und umkodieren, aber diese Annahme und Korrekturmaßnahme passt grad mal auf große Teile des westlichen Kulturkreises und ist für den Rest auch fehlerhaft. Alles andere wird verhältnismäßig aufwendig und unwirtschaftlich.

Du bekommst utf-8-gefällige Bytes und stehst nun vor der Entscheidung, was Du in Richtung DB schicken sollst:

  1. Bytes
      oder
  2. Zeichenketten

Diese Entscheidung muss ich für den vorliegenden Fall unter derzeitigem PHP nicht treffen.

Schreib doch einfach mal auf, wie Du das mit PHP machst in beiden Fällen, das dürfte den OP interessieren.

Unter der Annahme, dass UTF-8-kodierte Daten mit dem Request reinkommen, müssen diese einfach nur durchgereicht werden. PHP nimmt die Bytes und Byte-Sequenzen der Zeichen und schiebt sie 1:1 an das DBMS weiter, solange man nichts an ihnen ändert (Kontextbehandlung darf man machen, die ist für UTF-8-Byte-Sequenzen (also Zeichen jenseits von ASCII) ungefährlich).

dedlfix.