UTF8 und ISO / Latin Projekte Parallel

peejey

Mitglied
Hallo,

ich habe mir die zahlreichen Beiträge hier sowie auf anderen Seiten zum Thema "PHP-Projekte auf UTF-8 umstellen" durchgelesen und denke, dass ich alle Änderungen (Datenbank, PHP und Quellcode) hinbekomme.

Mein Problem ist allerdings, dass ich bereits 10 Projekte auf meinem PC laufen habe, welche ich mit iso-8859-1 bzw. latin1 gemacht habe.
Ohne die alten Projekte umzustellen, möchte ich die neuen zukünftig in UTF-8 machen. Aber ich muss auch die alten Projekte immer wieder bearbeiten und dafür Datensicherungen einspielen etc...

Doch ist das realistisch gesehen möglich, ohne das sich die Katze früher oder später in den Schwanz beißt?

MySQL-Datenbank:
Meine Vorstellung wäre jene, dass ich die Default-Werte bereits auf UTF-8 umstelle und bei den Datensicherungen der alten Webs muss ich halt angeben, dass es sich um latin1 handelt.
Ist das praktisch vorstellbar?

PHP:
Das einzige Problem, welches ich hier sehe, ist die Verwendung der String-Funktionen. Welche ja Byteweise arbeiten - außer man stellt mbstring.func_overload=7. (z.B. für strlen)
Allerdings funktionieren dann die String-Funktionen für die alten Webs nicht mehr. Gibts da Lösungsvorschläge?

Editor:
Da ich derzeit den Phase5-Editor verwende müsste ich mich hier ohnehin nach einem neuen umsehen, da Phase5 kein Unicode unterstützt.
Aber ist es möglich alte (latin1) und neue (utf8) Projekte in ein und den selbem Editor zu handeln?


Ich glaube, dass ja schon einige auf utf8 umgestiegen sind und sich wohl die gleichen Fragen gestellt haben, welche sie jetzt hoffentlich beantworten können.

Oder muss ich mir gar einen 2. PC anschaffen, um alles halbwegs risikofrei abwickeln zu können?
Online habe ich das Problem weniger, da hier in absehbarer Zeit ohnehin ein neuer Server fällig wird, mit welchem man die Umstellung vollziehen könnte.

lg
peejey
 
Hallo peejey,

es ist an sich gar kein Problem Projekte mit verschiedenen Charsets (Code/DB) zu handeln. Da die Datenbanken der ISO Projekte sowieso schon latin1 als Zeichensatz verwenden, werden diese Informationen bei einem ordentlichen DUMP auch mit exportiert. Du musst also nicht besonders viel beachten, wenn du auf der Shell mit mysqldump arbeitest.

Bei den neuen Projekten musst du lediglich darauf achten, dass die Tabellen und Felder unicode/utf8 definiert werden. Die Default-Einstellung des Servers nach utf8 zu ändern macht Sinn. Du wirst ja eher an neuen Projekten schrauben. als an alten.

Die üblichen String-Funktionen (strlen, strpos, ...) solltest du mit utf8 Zeichenketten meiden. Verwende stattdessen die mb_* Funktionen (mb_strlen, mb_strpos, ...) - die sind Multibyte sicher ;). mbstring.func_overload=7 ist bei dir nicht empfehlenswert, wie gesagt mit mb_* hast du faktisch keine Multibyteprobleme.

Ich arbeite mit Eclipse - hier kannst du zu jedem Projekt den Zeichensatz passend einstellen. Andere Editoren sollten das auch können. Auch hier steht deinem Vorhaben also nicht viel im Weg.

Grüße BN
 
Hallo peejey,
Die üblichen String-Funktionen (strlen, strpos, ...) solltest du mit utf8 Zeichenketten meiden. Verwende stattdessen die mb_* Funktionen (mb_strlen, mb_strpos, ...) - die sind Multibyte sicher ;). mbstring.func_overload=7 ist bei dir nicht empfehlenswert, wie gesagt mit mb_* hast du faktisch keine Multibyteprobleme.
ok danke, dann lass ich die finger von der overload-Einstellung.
zu meiner Schande muss ich gestehen, dass ich meinen Entwicklungsserver immer noch nicht auf php 5 umgestellt habe, und soweit ich das gesehen habe sind einige mb_-Funktionen erst mit der der 5er-Version verfügbar. aber die Umstellung auf PHP5(.3) würde ich sowieso im Zuge der Latin->UTF-Konvertierung mitmachen
 
Zurück