2009-08-17 2 views
1

-Code wie folgt zu ändern:fehlgeschlagen Seite Zeichensatz in meta

<meta http-equiv="Content-type" content="text/html; charset=utf8" /> 

Aber wenn ich die Seite mit IE surfen, verwendet er immer noch seinen Standard-Zeichensatz, das nicht UTF-8 ist.

Und die Seite wird nur normal, nachdem ich den Zeichensatz manuell auf utf8 gesetzt habe.

Warum konnte der HTML-Browser den Browser nicht über seinen Zeichensatz informieren?

Es ist auf dem lokalen Dateisystem, ich sehe es durch file: /// F: /jobs.html

Antwort

0

Es sollte utf-8 nicht utf8 sein.

1

Wahrscheinlich, weil der Server eine Codierung selbst angibt. Echte HTTP-Header haben Priorität.

Siehe http://www.w3.org/International/O-HTTP-charset

+0

Kann entweder durch Ändern der HTTP-Server-Konfiguration behoben werden (ich denke AddDefaultCharset-Direktive für Apache), oder wenn Sie eine Skriptsprache verwenden, dann können Sie es die entsprechende Content-Type-Header ausgeben. –

1

Es gibt eine order in that the actual character encoding is choosen:

Um es zusammenzufassen, Benutzerprogramme entsprechen, müssen folgende Prioritäten beachten, wenn eines Dokuments Zeichencodierung zu bestimmen (von der höchsten Priorität zum niedrigsten):

  1. Ein HTTP-Parameter "charset" in einem Feld "Content-Type".
  2. Eine META Deklaration mit "http-equiv" auf "Content-Type" und einem Wert für "charset" gesetzt.
  3. Das charset Attribut für ein Element, das eine externe Ressource bezeichnet.

So Ihrer META Erklärung kann nicht berücksichtigt werden, wenn es bereits charset Erklärung im Content-Type HTTP-Header-Feld.