Ulysses: charset utf-8

Liebe Alle,

ich beschäftige mich gerade mit der Frage des richtigen „Charsets“ für meine (X)HTML-Dateien. Gibt es einen Grund eine (X)HTML-Datei nicht in „utf-8“ zu codieren?
Kann mir zum Bspl. der Webserver einen „Strich durch mein Charset machen“ indem er im HTTP-Header eine andere Angabe sendet? Wenn ja, wie kann ich das verhindern?
Kann es sein, dass ein UserAgent kein „utf-8“ versteht?
Wie ist das mit den CSS-Dateien? Hier findet man die Angabe
@charset "irgendein-charset";
nur in sehr selten Fällen...

Und kann es sein, dass ausgerechnet bei diesem Beispiel http://aktuell.de.selfhtml.org/artikel/javascript/utf8b64/utf8charsettest.html die charset-Angabe nicht mit der tatsächlichen Codierung der Datei übereinstimmt?

Ich bin etwas verwirrt!
Wer kann für mich etwas Licht in die Angelegenheit bringen?
Danke schon mal im Voraus
Ulysses

  1. Hi,

    Gibt es einen Grund eine (X)HTML-Datei nicht in „utf-8“ zu codieren?

    Kaum einen heute noch wirklich relevanten.

    (Ja, PHP kann immer noch nicht so richtig mit UTF-8 umgehen. Aber die Vorteile ueberwiegen diesen Nachteil in den allermeisten Faellen.)

    Kann mir zum Bspl. der Webserver einen „Strich durch mein Charset machen“ indem er im HTTP-Header eine andere Angabe sendet?

    Ja - aber das kann er bei jeder anderen Kodierung auch.

    Wenn ja, wie kann ich das verhindern?

    In dem du ihn dazu bringst, die richtige Angabe zu senden ...?

    Kann es sein, dass ein UserAgent kein „utf-8“ versteht?

    Kein heutzutage noch relevanter, moechte ich meinen.

    Wie ist das mit den CSS-Dateien? Hier findet man die Angabe
    @charset "irgendein-charset";
    nur in sehr selten Fällen...

    Das duerfte daran liegen, dass man im CSS auch eher selten "Sonderzeichen" verwendet, die in ASCII nicht vorkommen.

    Und kann es sein, dass ausgerechnet bei diesem Beispiel http://aktuell.de.selfhtml.org/artikel/javascript/utf8b64/utf8charsettest.html die charset-Angabe nicht mit der tatsächlichen Codierung der Datei übereinstimmt?

    Ja - der Server liefert die Ressource mit dem Content-Type-Header "text/html; charset=ISO-8859-1" aus.
    Und da dieser Vorrang vor einer Angabe im Meta-Element hat, zeigt ein Browser dann Zeichensalat an.

    MfG ChrisB

    1. Danke für die raschen Antworten!

      Bleibt nur noch eine Unklarheit:

      Ja - der Server liefert die Ressource mit dem Content-Type-Header "text/html; charset=ISO-8859-1" aus.
      Und da dieser Vorrang vor einer Angabe im Meta-Element hat, zeigt ein Browser dann Zeichensalat an.

      Ist das so gewünscht, oder sollte man nun dafür das "Ticket-System" bemühen?
      Sorry für die blöde Frage, aber ich bin noch recht neu hier...

      1. Hi,

        Ja - der Server liefert die Ressource mit dem Content-Type-Header "text/html; charset=ISO-8859-1" aus.
        Und da dieser Vorrang vor einer Angabe im Meta-Element hat, zeigt ein Browser dann Zeichensalat an.

        Ist das so gewünscht,

        Sicher nicht.

        oder sollte man nun dafür das "Ticket-System" bemühen?

        Ja, koennte man machen. (Aber bitte erst schauen, ob's nicht bereits drinsteht.)

        MfG ChrisB

  2. @@Ulysses:

    ich beschäftige mich gerade mit der Frage des richtigen „Charsets“ für meine (X)HTML-Dateien. Gibt es einen Grund eine (X)HTML-Datei nicht in „utf-8“ zu codieren?

    Wenn das Dokument hauptsächlich aus Zeichen besteht, die in UTF-8 codiert drei oder vier Oktetts (Bytes) ergeben, ja. Dann wäre UTF-16 angebracht. Bei lateinischen Buchstaben ist dies nicht der Fall.

    Kann mir zum Bspl. der Webserver einen „Strich durch mein Charset machen“ indem er im HTTP-Header eine andere Angabe sendet? Wenn ja, wie kann ich das verhindern?

    FAQ: Einstellung der Zeichencodierungsangabe in .htaccess

    Kann es sein, dass ein UserAgent kein „utf-8“ versteht?

    Wenn, dann ist dessen Nutzer selbst schuld, dass er solch antiquierte Technik noch einsetzt.

    Live long and prosper,
    Gunnar

    --
    Flughafen in Tempelhof
    findet jeder Hempel doof.
    1. hallo,

      Kann mir zum Bspl. der Webserver einen „Strich durch mein Charset machen“ indem er im HTTP-Header eine andere Angabe sendet? Wenn ja, wie kann ich das verhindern?

      FAQ: Einstellung der Zeichencodierungsangabe in .htaccess

      und wenn der HTTP-Header "Content-Type: text/html; " und kein charset liefert, dann heißt das, dass die codierung meiner charset-angabe zu entnehmen ist - oder?

      lG Ulysses

      1. @@Ulysses:

        und wenn der HTTP-Header "Content-Type: text/html; " und kein charset liefert, dann heißt das,

        dass da '; ' zu viel ist

        dass die codierung meiner charset-angabe zu entnehmen ist - oder?

        Ja, das auch. Der HTTP-EQUIV-Angabe (HTTP-Äquivalent).

        Live long and prosper,
        Gunnar

        --
        Flughafen in Tempelhof
        findet jeder Hempel doof.
        1. Danke noch mal euch Beiden!!
          Ulysses