Kerstin_22: Browser erkennt Zeichencodierung nicht

Hallo!
Ich habe hier folgendes Szenario: in einem Frameset wird im mittleren Frame eine Tabelle angezeigt, deren Daten aus eineder mysql-DB kommen. Ich rufe diese mittels perl DBI ab. Alle Felder in der Datenbank haben die Codierung latin1. Alle angezeigten Seiten haben den selben HTML-Header

[code]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
[code]

Nun habe ich 2 Möglichkeiten:
1: In einem Formular wird Text eingegeben und in ein Datenbankfeld geschrieben; danach im Browser wieder angezeigt. Dies funktioniert prima, auch mit Umlauten.

2: Daten werden aus einer externen Quelle in die Datenbank geschrieben und im Browser angezeigt; Umlaute werden nicht richtig angezeigt.

In beiden Fällen dekodiert mein Browser (FF2, IE7) die angezeigte Seite in UTF-8.
Stelle ich die Codierung manuell auf Latin1 um, so funktioniert auch Fall 2. Fall 1 wird immer richtig angezeigt.

Wo könnte das Problem liegen?

Viele Grüße

  1. Alle angezeigten Seiten haben den selben HTML-Header

    der die http-equiv-angabe im html-<head />-bereich ist nicht relevant - der http-header ist allen fällen (wenn gesetzt) höher gewichtet als http-equiv

    das heisst:
    http-header und http-equiv

    • http-header sollte verwendet werden

    http-header und ohne http-equiv

    • http-header sollte verwendet werden

    keine angabe im http-header aber mit http-equiv

    • http-equiv sollte verwendet werden

    keine angabe im http-header und ohne http-equiv

    • browser

    in den drei obrigen fällen sind die http-header und http-equiv-angaben aber lediglich empfehlungen an den browser, wenn du deine utf-8-seite unbedingt in latin-1 oder big5 darstellen willst, kannst du das immer noch umstellen

    1. echo $begrüßung;

      in den drei obrigen fällen sind die http-header und http-equiv-angaben aber lediglich empfehlungen an den browser, wenn du deine utf-8-seite unbedingt in latin-1 oder big5 darstellen willst, kannst du das immer noch umstellen

      Das Umstellen der Zeichenkodierung hat primär nichts mit der Darstellung zu tun. Sie gibt nur an, gemäß welcher Kodierung die Daten vom Server zu interpretieren sind. Eine falsche oder richtige Darstellung ergibt sich dann als abhängiges Ergebnis - abhängig von der Übereinstimmung der tatsächlich vom Server verwendeten Kodierung und der Einstellung im Browser.

      echo "$verabschiedung $name";

      1. Sie gibt nur an, gemäß welcher Kodierung die Daten vom Server zu interpretieren sind.

        ich korrigiere auf "versuchst, deine mit uft-8 codierte datei als latin-1 oder big5 interpretierne zu lassen"