Ankündigung

Einklappen
Keine Ankündigung bisher.

Utf-8 -.-

Einklappen

Neue Werbung 2019

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

  • Utf-8 -.-

    Es macht mich fertig... immer diese Probleme mit der Zeichenkodierung, mit den Umlauten, Millionen von unterschiedlichen Varianten zur Lösung im Internet, keine funktioniert bei mir. Immer wieder hab ich Probleme damit.

    Auf meinem Home Server, der über XAMPP läuft (PHP 5.5), reicht
    PHP-Code:
    <meta charset="utf-8"
    schon aus, um Umlaute in einer PHP/ HTML Datei richtig anzeigen zu lassen. Lade ich die Datei hoch auf meinen Online-Webspace (PHP 5.3), dann bekomme ich sowas wie "bestätigen".


  • #2
    HTTP-Header setzen (beziehungsweise in dem Fall wohl mit dem korrekten Wert überschreiben).

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

    Kommentar


    • #3
      -_- hab das charset Attribut in link tags eingefügt:
      PHP-Code:
      link rel="stylesheet" type="text/css" href="style.css" charset="utf-8" />
      <
      meta charset="utf-8"
      es funktioniert, vielen dank. aber hätte php das nicht besser machen können..

      Kommentar


      • #4
        Das hat aber (im Weiteren Sinne) nichts mit PHP zu tun.
        Zitat von nikosch
        Naja, anscheinend spricht die Steckdose kein HTTP. LOL

        Kommentar


        • #5
          Die Umlaute stehen in den CSS-Dateien?

          Die einfachste Lösung ist in der Regel, oben in die Datei das hier zu schreiben:

          PHP-Code:
          <?php
          header
          ('Content-Type: text/html; charset=UTF-8');

          Kommentar


          • #6
            Ne.. eigentlich stehen die Umlaute im HTML-Teil meiner PHP-Datei :/

            Kommentar


            • #7
              Zitat von String Beitrag anzeigen
              es funktioniert, vielen dank. aber hätte php das nicht besser machen können..
              Jeder muss Bescheid gesagt bekommen, welches Charset zu erwarten ist.
              PHP: Speziell (UTF-8 kodiertes Script, falls String im Quelltext stehen, ansonsten "weiss" das Script, in welchem Encoding es arbeiten muss)
              HTTP: Content-Header
              HTML: meta charset (Browser haben allerdings Default-setting)
              Datenbank: Collation (*)
              Datenbanktreiber (!): API Funktion (z.B. mysqli::set_charset)

              Das PHP Script ist die zentrale Stelle um dies zu tun, von diesem geht alles aus. Es setzt HTTP Header (explizit oder implizit über den Webserver), erzeugt das HTML für den Browser, verbindet mit der Datenbank per Treiber und teilt diesem das Transportencoding mit.
              Nur die Datenbank steht aussen vor, da diese in aller Regel bereits existiert. Hier hilft aber der Treiber, denn er "übersetzt" die Daten vom Quellencoding (per PHP mitgeteilt) und dem Datenbankencoding, welches konfiguriert ist.
              (*) Die Datenbank kann also theoretisch ein anderes Encoding benutzen, weil der Treiber die Umkodierung übernimmt. Praktisch ist davon jedoch abzuraten wegen der bekannten Probleme (Viele UTF-8 Zeichen existieren in den 1-Byte Encoding wie ISO-8859 nicht und können nicht übersetzt werden).
              Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

              Kommentar


              • #8
                Zusammenfassung zu UTF-8 und Umlautproblemen

                Zitat von String Beitrag anzeigen
                Es macht mich fertig... immer diese Probleme mit der Zeichenkodierung, mit den Umlauten, .. dann bekomme ich sowas wie "bestätigen".
                Und uns erst... Mal hier im Forum suchen. Erst heute morgen hab ich nochmal eine Zusammenfassung zu UTF-8 und Umlautproblemen gepostet.
                PHP-Klassen auf github

                Kommentar


                • #9
                  PHP: Wie sieht da der Code aus?
                  HTTP: Ist das das im PHP Code? Wenn ja, bei mir funktioniert es bis jetzt noch ohne das
                  HTML: Hab ich. Wo liegt eigentlich der Unterschied zwischen <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> und <meta charset="utf-8>?
                  Datenbank: Hab ich.
                  Datenbanktreiber: Hab ich.

                  Kommentar


                  • #10
                    PHP: Da geht es um die Kodierung der Quellcode-Datei. Die lässt sich im Editor einstellen (UTF-8 ohne BOM ist zu empfehlen).
                    HTTP: Server-Einstellung oder header()-Aufruf im PHP-Skript, ja.
                    HTML: Das eine ist HTML vor Version 5, das andere ist modernes HTML (wie in <!DOCTYPE html>).

                    Kommentar


                    • #11
                      Zitat von mermshaus Beitrag anzeigen
                      PHP: Da geht es um die Kodierung der Quellcode-Datei. Die lässt sich im Editor einstellen (UTF-8 ohne BOM ist zu empfehlen).
                      HTTP: Server-Einstellung oder header()-Aufruf im PHP-Skript, ja.
                      HTML: Das eine ist HTML vor Version 5, das andere ist modernes HTML (wie in <!DOCTYPE html>).
                      PHP: Ahja, gut dann hab ich das auch.
                      HTTP: Ah.. in eine der Konfigurationsdateien von Apache also..
                      HTML: Dacht ich mir

                      Kommentar


                      • #12
                        Mit zum Beispiel dieser Seite kannst du checken, was dein Server so tut: http://validator.w3.org/i18n-checker/

                        Die Abfolge ist so grob „je weiter oben, desto höhere Priorität“. Ein „gut“ konfigurierter Server sollte glaube ich per default keinen charset-Header für HTML-Sachen setzen.

                        Kommentar

                        Lädt...
                        X