Kalle_B: Kodierung und content-type

Hallöle,

vorgestern hatte ich die Kommunikation mit der Datenbank im Verdacht, Umlaute zu verfälschen. Heute jedoch habe ich gemerkt, dass schon eine ganz normale HTML- Datei falsch angezeigt wird, also Umlaute als Fragezeichen.

Ist mir bisher nicht aufgefallen, weil ich im Editor (fast) immer ein Makro laufen lasse, dass die Umlaute wandelt in ä usw. Dann werden sie richtig dargestellt

Habe eine Testseite, zu der ich im Firefox Extras - Seiteninformationen - Allgemein u.a. folgende Info bekomme:

Kodierung: UTF-8
content-type: text/html;charset=ISO-8859-1

Hier der Code:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>UMLAUTE TEST</title>
<meta http-equiv="content-type"     content="text/html;charset=ISO-8859-1">
</head>
<body>
<h1>Umlaute-Test ÄÖÜ äöü ß</h1>
</body>
</html>

Wieso ignoriert der Editor meine ausdrückliche Angabe? Das ist seitdem ich die Seiten auf einem Debian- System hoste.

Lieben Gruß, Kalle

  1. Hi,

    Kodierung: UTF-8
    content-type: text/html;charset=ISO-8859-1

    Hier der Code:

    [...]

    <meta http-equiv="content-type"     content="text/html;charset=ISO-8859-1">

    obwohl sich Deine Frage auf HTML beschränkt, hast Du mit HTTP den richtigen Themenbereich gewählt. Eine im HTTP-Header angegebene Kodierung hat in jedem Fall Vorrang vor jeder Angabe im HTML-Code.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi,

      Eine im HTTP-Header angegebene Kodierung hat in jedem Fall Vorrang vor jeder Angabe im HTML-Code.

      Aha. Und dieser Header wird vom Browser an den Server geschickt? Wie kann ich den Browser umstellen?

      Die FF- Umstellung Ansicht - Zeichekodierung springt beim Laden der nächsten Seite wieder zurück auf UTF-8.

      Oder ist das eine Sache des Servers?

      Kalle

      1. Hallo,

        Eine im HTTP-Header angegebene Kodierung hat in jedem Fall Vorrang vor jeder Angabe im HTML-Code.
        Aha. Und dieser Header wird vom Browser an den Server geschickt?

        nein, umgekehrt. Deshalb ist es wichtig, dass der Server entweder anhand seiner Konfiguration "weiß", in welcher Codierung die Seiten gespeichert sind, damit er den passenden Header senden kann; oder dass der Autor die Seiten in der Codierung speichert, die der Server per Defaulteinstellung annimmt. Das ist wiederum von Server zu Server verschieden.

        Die FF- Umstellung Ansicht - Zeichekodierung springt beim Laden der nächsten Seite wieder zurück auf UTF-8.

        Natürlich. Mit dem Umstellen bittest du ihn ja auch nur: "Nimm mal an, die Seite wäre in xxx codiert." Wenn er die nächste Seite anfordert, bekommt er für die wieder eine neue Angabe vom Server.

        So long,
         Martin

        --
        Finanztipp:
        Leihen Sie sich Geld von einem Pessimisten.
        Er rechnet sowieso nicht damit, dass er es zurückbekommt.
        1. Hallo,

          irgendwie geht es nicht in Richtung Problemlösung. Ich frage mal gezielter:

          Wie und wo kann ich den HTTP- Header sehen?

          Wie kann ich ihn beeinflussen? Könnte Dateien des Servers ändern, habe aber keine Ahnung, welche.

          Kalle

          1. Wie und wo kann ich den HTTP- Header sehen?

            web-sniffer
            HTTP trace

            Wie kann ich ihn beeinflussen? Könnte Dateien des Servers ändern, habe aber keine Ahnung, welche.

            faq.bubax.net: Fehlerhaften content-type korrigieren
            W3C-FAQ: Setting charset information in .htaccess

            Roland

            --
              ,--./,-.
             /        \ |  Switch  |
             \        /
              `._,._,'
          2. Hi!

            Wie und wo kann ich den HTTP- Header sehen?

            Wenn du mit dem Firefox arbeitest, dann gibt es ein schönes Addon dafür.
            Es heißt Live HTTP Headers.

            Wie kann ich ihn beeinflussen?

            Mit Hilfe des Firefox Addons Modify Headers kannst du die vom Browser zum Server gesendeten Header (Request Header) verändern.
            In deinem Fall möchtest du aber die vom Webserver zum Browser gesendeten Header verändern.

            Könnte Dateien des Servers ändern, habe aber keine Ahnung, welche.

            Hauptsächlich betrifft das in deinem Fall die Datei httpd.conf - die Hauptkonfigurationsdatei des Apache Webservers.
            Öffne diese Datei mal in deinem Editor und suche nach folgender Kommentarzeile:

            Specify a default charset for all pages sent out.

            Darunter solltest du noch ein paar weitere Kommentarzeilen finden, die dir einiges über die Einstellung verraten.
            Wichtig ist dann die folgende Einstellung "AddDefaultCharset".

            Beim Apache liegt übrigens auch eine Dokumentation bei, so daß du dich über alle möglichen Einstellungen informieren kannst.

            Und um es noch zu erwähnen: Es gibt auch noch andere Dateien, in denen du Konfigurations-Einstellungen vornehmen kannst, z.B. .htaccess-Dateien.

            Und dann gibt es noch die Direktive Header, womit du auch noch Einfluß auf die HTTP-Header nehmen kannst.

            Schöner Gruß,
            rob