Sven Rautenberg: mal wieder utf-8

Beitrag lesen

Moin!

a) Ich muss ja alle Seiten in utf-8 abspeichern, kann mir jemand sagen ob und wie ich das automatisieren könnte?

Es gibt sicherlich Tools dafür, sowas wie (Achtung, Kommandozeile!) iconv etc.

Kann phase 5 in utf-8 speichern, ich hab die ganzen Einstellungen durhgeguckt aber nichts gefunden?

Nein, Phase 5 kann kein UTF-8. Den Editor kannst du wegschmeißen. (Abgesehen davon ist er in aktuellen Versionen ja sowieso nur noch für die private Verwendung kostenfrei nutzbar, kommerzieller Einsatz erfordert eine Lizenz).

Oder wer weiß mir einen guten Editor mit Projektverwaltung, der utf-8 unterstützt?

Es gibt diverse kostenlose Editoren, die UTF-8 können. Mein derzeitiger Favorit ist Notepad2 - dem fehlt allerdings jegliche Art von Projektverwaltung, was ich allerdings nicht als sonderlich tragisch empfinde.

b) Ich muss doch nicht nur in den meta-tags den Zeichensatz ändern oder? Muss doch irgendwie bei meinem Hoster auch sagen, dass ich utf-8 verwende?

Das mußt du testen. Manche Server sagen im HTTP-Header absichtlich nichts zur Zeichencodierung, dann gilt das Metatag als "letzte Rettung". Manche Server lesen das Meta-Tag noch vor der Übertragung aus und setzen den HTTP-Header identisch. Und manche Server (bei denen mußt du dann was ändern) haben eine Standardcodierung gesetzt, die nicht UTF-8 ist, und deshalb die Zeichendarstellung deiner neuen Seiten zerstören würde.

Wenn dir .htaccess erlaubt ist, kannst du aber ein DefaultCharset definieren, das UTF-8 heißt, und auch solche Server zur Mitarbeit überreden. Erst wenn auch das nichts hilft, brauchst du Kontakt zum Providersupport.

c) strlen und maximallängen in input-feldern sowie varchar in mysql tabellen? Wie kann ich das jetzt noch bewerkstelligen in utf-8? Wenn ich in mysql das Feld auf 200 beschränke, dann bringt es doch nichts, enn ich das input-fedl auf 200 beschränke und mit strlen überprüfe oder? bei utf-8 kann ein zeichen ja auch länger sein wie 1byte?

Korrekt erkannt, die einfachen Stringfunktionen in PHP kannst du mehrheitlich in die Tonne treten, wenn du UTF-8 benutzt, weil sie von falschen Voraussetzungen ausgehen.

Die anzuwendende Taktik kann unterschiedlich sein, je nach Lage der Dinge: Du kannst auch MySQL (Versionen ab 4.1 können UTF-8) komplett beauftragen, die Stringoperationen durchzuführen. Eine zu lange Zeichenkette in einem VARCHAR(200)-Felf würde z.B. einfach abgeschnitten am 200.sten UTF-8-Zeichen. Das wäre dann evtl. einfach Pech. Javascript beherrscht allerdings ebenfalls Unicode und würde sich zur Prüfung nutzen lassen, ohne Probleme zu machen.

PHP hat aber auch Multibyte-Stringfunktionen. Diese Extension muß aber nicht zwingend aktiviert sein. Siehe http://de3.php.net/manual/de/ref.mbstring.php.

d) was noch beachten...

Sicherlich noch ganz viel, aber das ist vom Einzelfall abhängig.

- Sven Rautenberg

--
"Love your nation - respect the others."