giggi: mal wieder utf-8

Hey,

hab mir vorgenommen, meine Seite auf utf-8 umzustellen zwecks Zeichenkompatibilität usw.

Nun habe ich ein paar fragen dazu:

a) Ich muss ja alle Seiten in utf-8 abspeichern, kann mir jemand sagen ob und wie ich das automatisieren könnte? Kann phase 5 in utf-8 speichern, ich hab die ganzen Einstellungen durhgeguckt aber nichts gefunden? Oder wer weiß mir einen guten Editor mit Projektverwaltung, der utf-8 unterstützt?

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?

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?

d) was noch beachten...

gruß an alle

  1. 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."
    1. Hi,

      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.

      Hast du sonst noch einen Vorschag?

      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.

      Wie finde ich das raus was bei meinem Hoster los ist, er antwortet mal wieder nicht...?

      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.

      Wie würde das gehen...?

      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.

      Also um bei dem Beispiel zu bleiben...
      im input-Feld wird doch die tatsächliche Zeichenlänge des strigns beschränkt mit maxlength...?
      mit mb_strlen könnte ich überprüfen, ob die eingegebene Zeichenkette die richtige anzahl an Zeichen enthält...?
      ws beschränkt jetzt das varchar(200) in einer utf-8 mysql-tabelle? wenn das auch die zeichen beschränkt ist doch alles roger?

      aber danke für die antworten auf jedenfall schonmal...

      Aber ich bracuh noch was zum automatisieren sonst werde ich verrückt...^^

      gruß

      1. P.S.:

        Welches utf 8 bei notepad 2? Big endian , utf 8 oder utf 8 mit signatur?

        1. Hallo giggi.

          P.S.:

          Welches utf 8 bei notepad 2? Big endian , utf 8 oder utf 8 mit signatur?

          Einfach nur „UTF-8“. „Big Endian“ ist auf deinem System nicht relevant und die Signatur wäre die optionale und vielerorts für Fehler verantwortliche BOM.

          Einen schönen Donnerstag noch.

          Gruß, Mathias

          --
          ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
          debian/rules
          1. bei notepad2 utf8 oder utf8 ohne bom...so wie du sagtest ohne bom oder?

            1. bei notepad2 utf8 oder utf8 ohne bom...so wie du sagtest ohne bom oder?

              Ja. UTF-8 ohne BOM.

              Roland

              --
              -)
  2. gudn tach!

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

    dazu kannst du mal im hiesigen archiv stoebern. die texteditor-frage wird oefters gestellt. meine antwort: vim.

    prost
    seth

  3. dannge...

    ps hab auch mal notepad plus geladen...gefällt mir sehr gut...nur eine frage ist es sinnvoll eine datei in windows format zu editieren anstatt unix...also des hat doch was mit rücklauf usw zu tun oder? und mac kann ich auch noch einstellen...

    gruß

    1. Hello out there!

      ist es sinnvoll eine datei in windows format zu editieren anstatt unix...also des hat doch was mit rücklauf usw zu tun oder?

      So isses.

      und mac kann ich auch noch einstellen...

      UNIX verwendet für einen Zeilenumbruch das Steuerzeichen U+000A line feed; Mac verwendet U+000D carriage return; Windows verwendet die Folge U+000D U+000A.

      Ein Browser sollte mit allem klarkommen, wenn du also ein paar Byte sparen willst ... ;-) Die Frage ist, womit kommt dein Editior (und eventuell andere Werkzeuge) klar?

      Außerdem wandelt dein FTP-Programm eventuell noch um, so dass deine Dateien auf einem UNIX-Server kleiner sind als auf deinem Windows-Systen – um ebensoviele Bytes wie dein Dokument Zeilen zählt.

      See ya up the road,
      Gunnar

      --
      „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
      1. aber gängig ist unix-steuerzeichen oder?

        1. Hello out there!

          aber gängig ist unix-steuerzeichen oder?

          Gängig ist auf jedem System das seine/die seinen.

          See ya up the road,
          Gunnar

          --
          „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
      2. Hallo Gunnar.

        UNIX verwendet für einen Zeilenumbruch das Steuerzeichen U+000A line feed; Mac verwendet U+000D carriage return; […]

        Verwendet*e*. Seit Version 10 ist Mac OS ein Unix.

        Einen schönen Donnerstag noch.

        Gruß, Mathias

        --
        ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
        debian/rules