Lukas: Zeichenkodierung per META-Tag festlegen

Hallo alle zusammen,

ich hab ein problem ^^..
im moment programiere ich ein Communitysystem (was es auch bald zum download gibt ;) )
ehm ja und ich hab nen problem.
Da natürlich nicht jeder PC standardmessig UTF-8 oder das alte ISO als Zeichenkodierung benutzt will ich das natürlich angeben, damit der broswer das richtige wählt.

Und jetzt mein Problem: der Browser nimmt nicht die Zeichenkodierung die ich ihm vorschreibe.

hier mal nen auszug aus meinem Quellcode:
<?xml version="1.0" encoding="windows-1252"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="de" xml:lang="de">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
<title>Joecom // Willkommen...</title>
</head>
<frameset fram.....

ich habe zum testen jetzt mal Windows-1252 benutzt.. letztendlich solls aber ISO-8859-1 sein (da das eigentlich soweit ich weiss überall funktioniert ;) ).. ich bin nemlich nicht so der Fan von UTF-8 müsst ihr wissen ^^ aber mein Ubuntu Linux hat das nunmal drinnen..

jedenfalls schnallt der Browser das ned und wechselt auch ned die Kodierung. Komisch is nur das ers bei allen anderen Internetseiten macht wo so eine Kodierung im Header steht.. ich verstehs nicht.

(und nein ich will auch nicht umbedingt was in der Konfiguration meines Apachen ändern, da die Community auch später auf allen anderen servern laufen soll, egal welche Standardkodierung es hat)..

ich hoffe einer kann mir helfen und sagen was an meinem header falsch is.

Tschöö Lukas
Ubuntu Linux 5.10, Apache2 mit PHP5 ^^

  1. Hallo,

    Und jetzt mein Problem: der Browser nimmt nicht die Zeichenkodierung die ich ihm vorschreibe.

    ich behaupte mal ganz frech: Doch, das tut er. Du achtest bloß nicht darauf, was du ihm wirklich sagst.

    hier mal nen auszug aus meinem Quellcode:
    <?xml version="1.0" encoding="windows-1252"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="de" xml:lang="de">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />

    Hm, naja... XHTML in Windows-1252, eine ungewöhnliche Kombimation. Aber diese Angaben werden ja wahrscheinlich gar nicht berücksichtigt.

    ich hoffe einer kann mir helfen und sagen was an meinem header falsch is.

    Header ist ein gutes Stichwort: Welche Zeichencodierung sendet denn dein Apache im HTTP-Header? Denn solange der da _überhaupt_ eine angibt, was er auf jeden Fall tun sollte, hat diese Angabe Vorrang, und die Informationen im Dokument (XML-Prolog, META-Anweisungen) werden ignoriert.

    Sorge also als erstes dafür, dass dein Server die korrekte Zeichencodierung sendet. _Dann_ kannst du dein (X)HTML-Dokument so anpassen, dass dort -für den Fall, dass das Dokument mal nicht über HTTP übertragen wird- ebenfalls der korrekte Parameter steht.

    Schönen Abend noch,
     Martin

    --
    Die beste Informationsquelle sind Leute, die jemand anderem versprochen haben, nichts weiterzuerzählen.
      (alte Journalistenweisheit)
    1. danke für die antwort, werd später schaun ob der apache was sendet..

      aber was is wenn jetzt jemand die seite auf nen server tut der im header UTF-8 sendet, aber meine seite jetzt in ISO geschrieben is. dann wird die ja ned richtig angezeigt, des is ja dann voll scheisse.. ich will ja das mein script auf jedem server ist und ned das auf einem anderem server dann die umlaute falsch sind..

      gibts da ne möglichkeit das die kodierung immer richtig ist egal wie die konfig des apache (webservers) ist?

      1. gibts da ne möglichkeit das die kodierung immer richtig ist egal wie die konfig des apache (webservers) ist?

        Du suchst vielleicht

        <?php header("Content-type: text/html; charset=windows-1252"); ?>

        PHP Manual -> Header, suche in den User Notes.

        Im Apachen muss das erlaubt sein, (ist meistens auch so).

        Apache Manual -> AllowOverride, relevant ist: im Absatz "Fileinfo" ist "header" aufgelistet.

        Shenga

        1. danke.. hab das problem jetzt mit dem header in php in griff bekommen..

          hab so auch gleich ne funktion eingebaut damit man den header zu senden ausschlaten kann ^^.. muss das dann gleich in meiner anleitung dokumentieren für die lieben user ;)