The @charset CSS at-rule specifies the character encoding used in the style sheet. It must be the first element in the style sheet and not be preceded by any character; as it is not a nested statement, it cannot be used inside conditional group at-rules. If several @charset at-rules are defined, only the first one is used, and it cannot be used inside a style attribute on an HTML element or inside the <style> element where the character set of the HTML page is relevant.
This at-rule is useful when using non-ASCII characters in some CSS properties, like content.
As there are several ways to define the character encoding of a style sheet, the browser will try the following methods in the following order (and stop as soon as one yields a result) :
1) The value given by the charset attribute of the Content-Type: HTTP header or the equivalent in the protocol used to serve the style sheet.
2) The value of the Unicode byte-order character placed at the beginning of the file.
3) The @charset CSS at-rule.
4) Use the character encoding defined by the referring document: the charset attribute of the <link> element. This method is obsoleted in HTML5 and must not be used.
5) Assume that the document is UTF-8
/* Set the encoding of the style sheet to Unicode UTF-8 */ @charset "UTF-8"; /* Set the encoding of the style sheet to Latin-9 (Western European languages, with euro sign) */ @charset 'iso-8859-15'; /* Invalid, there is a character (a space) before the at-rule */ @charset "UTF-8"; /* Invalid, without ' or ", the charset is not a CSS @charset UTF-8;