@charset

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Die @charset CSS-Regel gibt die Zeichenkodierung an, die im Stylesheet verwendet wird. Diese Syntax ist nützlich, wenn nicht-ASCII-Zeichen in einigen CSS-Eigenschaften wie content verwendet werden. Obwohl das erste Zeichen in @charset das @-Symbol ist, handelt es sich nicht um eine At-Regel. Es ist eine spezifische Byte-Sequenz, die nur am Anfang eines Stylesheets platziert werden darf. Keine anderen Zeichen, außer dem Unicode-Byte-Order-Mark, sind davor erlaubt. Es folgt zudem nicht den normalen CSS-Syntax-Regeln wie der Verwendung von Anführungszeichen oder Leerzeichen.

Wenn ein @charset nicht als Charset-Deklaration erkannt wird, wird es als normale At-Regel geparst. Das CSS-Syntax-Modul setzt dieses Fallback-Verhalten außer Kraft, indem es sie als eine nicht erkannte veraltete Regel definiert, die beim Syntax-Checken eines Stylesheets verworfen werden sollte.

Da es mehrere Möglichkeiten gibt, die Zeichenkodierung eines Stylesheets zu definieren, prüft der Browser die folgenden Methoden in der angegebenen Reihenfolge (und stoppt, sobald eine erfolgreich ist):

  1. Der Wert des Unicode-Byte-Order-Zeichens, das sich am Anfang der Datei befindet.
  2. Der Wert, der durch das charset-Attribut des Content-Type:-HTTP-Headers oder das Äquivalent im verwendeten Protokoll angegeben wird.
  3. Die @charset-CSS-Deklaration.
  4. Die im referenzierenden Dokument definierte Zeichenkodierung: das charset-Attribut des <link>-Elements. Diese Methode ist veraltet und sollte nicht verwendet werden.
  5. Die Annahme, dass das Dokument UTF-8 ist.

Syntax

css
@charset "UTF-8";
@charset "iso-8859-15";

Formale Syntax

@charset "<charset>";
charset

Eine <string>, die die zu verwendende Zeichenkodierung angibt. Es muss der Name einer web-sicheren Zeichenkodierung sein, die im IANA-Register definiert ist, und muss in doppelte Anführungszeichen gesetzt werden, unmittelbar gefolgt von genau einem Leerzeichen (U+0020) und sofort mit einem Semikolon abgeschlossen werden. Wenn mehrere Namen einer Kodierung zugeordnet sind, darf nur derjenige verwendet werden, der mit preferred markiert ist.

Beispiele

Gültige und ungültige Charset-Deklarationen

css
@charset "UTF-8"; /* Set the encoding of the style sheet to Unicode UTF-8 */
css
@charset 'iso-8859-15'; /* Invalid, wrong quotes used */
@charset  "UTF-8"; /* Invalid, more than one space */
 @charset "UTF-8"; /* Invalid, there is a character (a space) before the declarations */
@charset UTF-8; /* Invalid, the charset is a CSS <string> and requires double-quotes */

Spezifikationen

Specification
CSS Syntax Module Level 3
# at-ruledef-charset

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
@charset

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
See implementation notes.

Siehe auch