Charset in HTML, PHP oder htaccess?

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

  • Charset in HTML, PHP oder htaccess?

    Hallo,

    ich habe einfach in meine .htaccess diese Zeile mit eingefügt:

    AddDefaultCharset UTF-8

    Die PHP-Dateien selbst sind alle in UTF8.

    Muss ich jetzt zusätzlich trotzdem noch per PHP einen Header senden?

    Und ist diese Zeile im HTML dann auch noch nötig?

    <meta http-equiv="content-type" content="text/html; charset=utf-8">

    Der Server schickt ja bereits jetzt schon dies zurück:

    Content-Type: text/html; charset=UTF-8

    Danke!

  • #2
    Nein, wenn der Server charset=UTF-8 schickt, dann reicht das für den Browser.

    Kommentar


    • #3
      Und wie erkennt er den Content-Type?

      Meta: "content-type" content="text/html

      Ich generiere ja jeglichen Output mittels einer index.php und die schickt ja keine Endung .htm(l) raus...

      Kommentar


      • #4
        Zitat von Truncate Beitrag anzeigen
        Und wie erkennt er den Content-Type?
        Anhand des Content-Type im HTTP-Header.

        Kommentar


        • #5
          Zitat von h3ll Beitrag anzeigen
          Anhand des Content-Type im HTTP-Header.
          Ja aber ich geb doch mittels PHP keinen Header aus?!

          Die index.php könnte ja auch ein Image ausgeben mit entsprechendem Header, wieso schlussfolgert er bei fehlendem Header das es text/html sein muss?

          Es steht ja lediglich <html> im Anfang der Ausgabe, kein weiteres Meta-Tag etc.

          Kommentar


          • #6
            Zitat von Truncate Beitrag anzeigen
            Ja aber ich geb doch mittels PHP keinen Header aus?!
            Wenn du mit PHP keinen ausgibst, dann macht das der Webserver für dich. Ich würde allerdings immer selber die Kontrolle in die Hand nehmen und nicht auf eine zufällig passende Einstellung des Webservers vertrauen.

            Zitat von Truncate Beitrag anzeigen
            Die index.php könnte ja auch ein Image ausgeben mit entsprechendem Header, wieso schlussfolgert er bei fehlendem Header das es text/html sein muss?
            Tja, dann landet im Browser ein Zeichenmüll, weil er glaubt, dass der Server HTML ausliefert, aber unerwartet Binärdaten kommen. Denn der Webserver sendet standardmäßig den Content-Type für HTML. Manchmal erkennt der Browser trotzdem die Bilddaten und zeigt sie richtig an, aber ich würde mich auch nicht darauf verlassen, dass der Browser solche Fehler selber erkennt und automatisch behebt.

            Zum Beispiel:
            PHP-Code:
            <?php

            readfile
            ('test.png');
            Ausgabe bei Firefox:
            Zuletzt geändert von h3ll; 12.09.2018, 21:43.

            Kommentar

            Lädt...
            X