Migration auf reines UTF-8?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Migration auf reines UTF-8?

    Bei mir steht schon seit einer Weile die Migration einiger komplexer Webanwendungen von ISO-8859- und sonstigen Kodierungen auf reines UTF-8 an.

    Mich würde interessieren, ob jemand von euch Erfahrungen mit solchen größeren Umstellungen hat, oder Links zu entsprechenden Erfahrungsberichten oder Tutorials hat.
    Datenbanken, Datenbankverbindungen und PHP-Files müssen in ihrer Kodierung auf UTF-8 gestellt werden, das ist klar.
    Schwerer durchschaubar wird es für mich bei den Stringfunktionen. Sachen wie str_replace sind meiner Erfahrung nach nicht Multibyte-fähig, aber es gibt keine mb_-Entsprechung für diese Funktion.

    Gibt es irgendwo eine umfassende Bibliothek mit entsprechenden Replacement-Funktionen?
    Gibt es außer den String-Funktionen noch andere Fallstricke beim Umstellen auf UTF-8?

  • #2
    Re: Migration auf reines UTF-8?

    Original geschrieben von pekka
    Schwerer durchschaubar wird es für mich bei den Stringfunktionen. Sachen wie str_replace sind meiner Erfahrung nach nicht Multibyte-fähig, aber es gibt keine mb_-Entsprechung für diese Funktion.
    Normalerweise benutzt man dann - wenn es wirklich keine mb_*-Funktion dafür gibt, preg_* mit Modifier u.

    Allerdings muss man das "nicht-Funktionieren" der String-Funktionen etwas diffiziler sehen.
    Sie funktionieren - nur ggf. nicht so wie erwartet.
    Sie erkennen halt mehrere Bytes nicht als *ein* Zeichen, sondern als mehrere (und von (eventuellen) Nebenwirkungen mal abgesehen).
    Ein str_replace sollte allerdings einwandfrei gehen - vorausgesetzt du übergibst alle Parameter im gleichen Zeichensatz.
    Da hilft im Zweifelsfall einfach ausprobieren.

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      Re: Re: Migration auf reines UTF-8?

      Original geschrieben von ghostgambler
      Da hilft im Zweifelsfall einfach ausprobieren.
      Darauf wirds wohl oft rauslaufen und werd ich nicht drumrumkommen . Wonach ich suche, sind Erfahrungsberichte, um keine Fallstricke zu übersehen und einen Überblick über die "best practices" zu bekommen.

      Kommentar


      • #4
        Im Endeffekt gibt es da echt nicht viel zu beachten...
        Ich würde sogar etwas weiter gehen und sagen: Wenn du nichts explizit mit Strings machst und als Data-Storage allein MySQL verwendest, musst du am Code überhaupt nichts ändern.

        Was man *auf jeden Fall* vermeiden sollte ist Mischbetrieb. Also einige Programme noch auf ISO und einige schon auf UTF8 laufen zu haben. Das führt immer wieder zu Problemen.
        Und wenn du halt Daten auch anderswo als in der DB speicherst, musst du diese natürlich dann beachten. Die DB hingegen stellt sich ja mit SET NAMES praktisch automatisch um.
        Ansonsten fällt mir jetzt spontan nix ein, in was ich mal irgendwann gerannt bin und wo ich mir dachte "ach, kacke, das solltest du dir für die Zukunft merken".

        Der Wechsel eines Zeichensatzes ist ja jetzt auch nicht wirklich sooo eine große Sache...

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          Was man vielleicht noch als Beispiel kennt, ist die Kürzung von Zeichenketten, zum Beispiel um ein "..." hinten anzuhängen. Da darfst du dich nicht auf die Rückgabe von strlen verlassen, da es sich bei dem Rückgabewert nicht um Zeichen sondern Bytes handelt. Aber sonst wüsste ich jetzt auch nichts, was besonders zu beachten ist.

          Kommentar

          Lädt...
          X