dedlfix: UTF-8 String mit strtr() filtern

Beitrag lesen

Hi!

Unterscheide beim Programmieren konsequent zwischen Byte- und Character Semantics.

Wenn man zwischen Byte und Zeichen unterscheidet, dann wohl eher, weil das eine Binärdaten sind und das andere Zeichenketten. Wie die Zeichenkette in Bytes abgelegt ist, interessiert in der Regel auch nicht. Und nun müsste man vom allgemeinen Blabla auf die Besonderheiten PHPs eingehen und dabei irgendwelches Perl-Wissen außen vor lassen.

Für Ein-Byte-Kodierungen ist es völlig belanglos, ob man zeichen- oder bytebasiert Stringoperationen ausführt. Für Mehrbyte-Kodierungen kann man die Bytes unbetrachtet lassen, weil man die Komplexität der Stringverarbeitung lieber passenden Funktionen überlässt, deren Innenleben dabei wenig interessant ist.

Stelle in jeder Codezeile sicher, ob ein String Bytes oder Zeichen beinhaltet und vermische dies nicht. Operiere entweder mit Bytes ODER mit Zeichenketten. Vergleiche nicht Byte-Sequenzen mit Zeichenketten. Ersetze keine Bytes in Zeichenketten sondern ersetze Zeichen in Zeichenketten. Ersetze keine Zeichen in Bytesequenzen sondern ersetze Bytes in Bytesequenzen. Stelle in der Ausgabe sicher, ob Bytes oder ob Zeichen ausgegeben werden sollen.

Und ganz wichtig: Verwende keine Äpfel, wenn du Birnenkompot machen willst.

Lo!