Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Umstellen auf UTF-8

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Umstellen auf UTF-8

    Hallo

    Da überall angeraten wird Codierung UTF-8 zu verwenden überlege ich mir dies auch zu tun. Um sicher zu sein möchte ich mein Vorgehen zuerst beschreiben.

    Auf dem Server (HTTP und .htaccess) sind keine Codierungen eingetragen, auch verwende ich kein SQL.

    Kann ich nun mit dem Notepad++ alle Seiten einlesen, den Tag
    PHP-Code:
    <meta charset="utf-8"
    einfügen und dann unter UTF-8 speichern?

    Genügt das oder gibt es ein Chaos?

    Viele Dank für Informationen und Grüsse, Nebbiolo


  • #2
    Schau dir doch mal mit dem Browser-Developer-Tool deiner Wahl die HTTP-Header an die dein Webserver ausliefert. Evtl. muss da dann noch geschraubt werden.

    Kommentar


    • #3
      Es sollte übrigens so aussehen:


      PHP-Code:
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
      ist mit gerade gar nicht aufgefallen, sorry

      Kommentar


      • #4
        Sofern du nach dem Speichern in UTF-8 noch alle Umlaute/Sonderzeichen als solche erkennst, ist alles gut. Anderenfalls musst du nach dem Speichern nochmal alle Zeichen verbessern, die zerschossen wurden.

        PHP Script sollte noch einen Content-Encoding header senden, um auf der sicheren Seite zu sein.
        Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

        Kommentar


        • #5
          Code:
          <meta charset="utf-8">
          <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
          Seit HTML5 (<!DOCTYPE html>) geht beides und gegen Variante 1 spricht nichts.

          Genügt das oder gibt es ein Chaos?
          Theoretisch genügt das. Siehe zum Beispiel hier:

          - http://php-de.github.io/jumpto/faq/#html-charset

          Kommentar


          • #6
            Vielen Dank an Alle ... dann werde ich mal loslegen

            @mermshaus ich habe auch gelesen, das Variante 1 "heute" benützt werden sollte.

            Ich werde nun mal eine (nicht gerade das index.php) Seite ändern und hochladen ... in der Hoffnung ein Gemisch der Seiten ist verträglich ...

            Kommentar


            • #7
              Zitat von nebbiolo Beitrag anzeigen
              und dann unter UTF-8 speichern?
              Nicht einfach speichern! Notepad++ erkennt die Kodierung deiner Seite und zeigt diese in der Fußzeile an. Nimm 'Convert to UTF-8 without BOM' und du hast keine Probleme mit zerschossenen Zeichen.

              Standardtipps:
              Zitat von Aus PHP.de Beiträgen
              Nutze konsequent UTF-8. Kurze Checkliste für UTF-8 und Umlautprobleme:
              - HTTP Header Content-Type mit UTF-8
              - in HTML-Seiten <meta http-equiv="content-type" content="text/html; charset=utf-8" />
              oder <meta charset="utf-8"><!-- HTML5 -->
              sollte idealerweise als Erstes, gleich nach dem einleitenden head-Element erfolgen
              - PHP und HTML/Template Dateien im Editor als "UTF-8 ohne BOM" speichern
              - Formulardaten in UTF-8 übergeben (ggf. mit accept-charset="utf-8" sicherstellen)
              - Datenbank Zeichensatz UTF-8, Tabellenkollationen utf8_general_ci o.Ä.
              - Datenbankverbindung von PHP zu MySQL auf UTF-8 stellen
              - Daten aus Fremdquellen müssen in UTF-8 überführt werden, wenn sie nicht als UTF-8 vorliegen
              utf8_encode: ISO-8859-1-Zeichenkette -> UTF-8
              - htmlentities codierung mitgeben, Beispiel: htmlentities($info,ENT_NOQUOTES,'UTF-8');
              - für deutsche Monatsnamen wie März ist u.U. setlocale(LC_TIME, "de_DE.utf8") notwendig
              Diagnosetipps:
              Erscheinen ��� statt der erwarteten Umlaute äöü, dann werden oft ISO 8859-1 codierte Zeichen im Browser als UTF-8 interpretiert.
              Mögliche Ursache:
              Für den Header/Metatag ist charset=UTF-8 gesetzt, die Seiten sind jedoch nicht als UTF-8 gespeichert
              oder die Zeichen stammen aus einer nicht UTF-8 Fremdquelle (Datenbank, Datei, Window-System..)

              Erscheinen Ausgaben wie ä ö ü für ä ö ü, dann werden oft UTF-8 codierte Zeichen als ISO 8859-1 interpretiert.
              Mögliche Ursache:
              Fehlender oder falscher Header/Metatag. Ein header('Content-Type: text/html; charset=UTF-8'); im PHP-Script löst
              in vielen Fällen schon das Problem.
              Oder eine sog. Überkodierung: header und Zeichen UTF-8, irgendwo ein utf8_encode zuviel.
              PHP-Klassen auf github

              Kommentar


              • #8
                Super ispit

                Jetzt wollte ich schon schreiben, dass man aber alle Umlaute ändern muss ... was ich bereits mit Fleiss gemacht habe.

                Notepad++ kenne ich erst zwei Tage und habe die Funktion "Konvertiere zu" gar nicht gesehen ... nun kann ich viel Aufwand sparen

                Kommentar


                • #9
                  Mal interessehalber gefragt: Was macht denn ein Feature, „als UTF-8 speichern“, wenn es nicht entsprechend konvertiert? Gar nichts?

                  Kann ich nun mit dem Notepad++ alle Seiten einlesen […] und dann unter UTF-8 speichern?

                  Kommentar


                  • #10
                    Ein Feature, „als UTF-8 speichern“ oder auch "unter UTF-8 speichern" gibt es beim Notepad++ genau genommen nicht.
                    Ich schrieb deshalb auch "Nicht einfach speichern!" (es lebe der feine Unterschied..). Hätte noch 1 oder 2 Sätze zusetzen sollen, um Missverständnisse zu vermeiden. Da wir hier im Einsteiger-Forum sind, das Problem noch mal etwas ausführlicher.

                    Ein häufiger Fehler bei der Benutzung vom Notepad++ ist, unter Kodierung einfach eine neue Einstellung zu wählen.
                    Steht diese z.B. auf ANSI und im Editor äöü, dann wird dies nach Auswahl der Kodierung UTF8 verstümmelt (hexadezimal als xE4xF6xFC angezeigt).
                    Wird das nun so gespeichert kommt Murx raus.
                    Sofern an der Datei noch nichts geändert wurde, kann die Kodierung wieder auf ANSI gestellt werden, äöü wird wieder angezeigt und das bleibt auch so nachdem
                    "Konvertiere zu UTF-8 ohne BOM"
                    ausgeführt wurde. Jetzt kann gespeichert werden.

                    Unter Optionen -> Neue Dateien sollte unter Kodierung "UTF-8 ohne BOM" eingestellt sein, dann ist man bei der Erstellung neuer Scripte gleich in der richtigen Spur.

                    LG jspit
                    PHP-Klassen auf github

                    Kommentar


                    • #11
                      Also nochmals Danke für die Hilfe, ich habe nun den grössten Teil umgestellt .... und es läuft

                      Falls noch jemand umstellen möchte hier meine kurze Zusammenfassung:

                      1. Auf dem Server (HTTP und .htaccess) Codierungen kontrollieren (hat Vorrang)
                      2. Mit Notepad++ Webseiten einlesen -> Kodierung -> Kodiere zu UTF ohne BOM -> speichern
                      3. Webseiten auf Server hochladen

                      Kommentar


                      • #12
                        Zitat von mermshaus Beitrag anzeigen
                        Mal interessehalber gefragt: Was macht denn ein Feature, „als UTF-8 speichern“, wenn es nicht entsprechend konvertiert? Gar nichts?
                        Es stellt die Anzeige um

                        Ein ISO-kodiertes 'ü' (0xFC) wird dann zu dem entsprechenden UTF-8 Zeichen an der Byteposition (sowas wie "╣")
                        Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                        Kommentar

                        Lädt...
                        X