Peter Mairhofer: Prüfungen ob ASCII

Beitrag lesen

Der String 'öäü' wird nun als 3 Zeichen gezählt.

Serverseitig wird das Zeug aber als UTF8 gespeichert und in PHP ergibt ein strlen also 6 Zeichen.

Gibt es eine portable Möglichkeit, nicht ASCII Zeichen als 2 zu zählen? Oder dem Problem irgendwie anders Herr zu werden?

Welchen Problems denn eigentlich?
Bisher hast du kein Wort darueber verloren, an welcher Stelle das ganze ein echtes Problem darstellt.

Also was ich will: ASCII Zeichen als 1 zählen, den Rest als 2.

Nebensächlich ist das Problem: Der User soll *genau* 200 Zeichen eingeben können. Das wird mit PHP serverseitig mit strlen geprüft und dann in mySQL5 in ein VARCHAR(200) geschrieben.

Dabei handelt es sich aber um UTF8 Kodierung wo Umlaute 2 Bytes benötigen.

D.h. serverseitig wird öäü als 6 gezählt, clientseitig (zumindest bei mir) als 3. Nachdem ich einfach nur 200 Bytes Platz habe (VARCHAR(200)) möchte ich alle nicht ASCII Zeichen als 2 zählen!

Jetzt klar?

lg
Peter