Charset in HTML, PHP oder htaccess?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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.

    Comment


    • #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...

      Comment


      • #4
        Originally posted by Truncate View Post
        Und wie erkennt er den Content-Type?
        Anhand des Content-Type im HTTP-Header.

        Comment


        • #5
          Originally posted by h3ll View Post
          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.

          Comment


          • #6
            Originally posted by Truncate View Post
            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.

            Originally posted by Truncate View Post
            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:
            Last edited by h3ll; 12-09-2018, 20:43.

            Comment

            Working...
            X