--- title: '@charset' slug: Web/CSS/@charset tags: - Regla-at translation_of: Web/CSS/@charset --- <div>{{ CSSRef }}</div> <h2 id="Resumen">Resumen</h2> <p>La <a href="/en/CSS/At-rule" title="At-rule">regla-at</a> <strong><code>@charset</code></strong> de <a href="/en/CSS" title="CSS">CSS</a> especifica la codificación de caracteres usada en la hoja de estilos. Éste debe ser el primer elemento en la hoja de estilos, y no debe ser precedidad por ningun otro caracter; al no ser una <a href="/en/CSS/Syntax#nested_statements" title="en/CSS/Syntax#nested_statements">declaración anidada</a>, no puede ser usada dentro de <a href="/en/CSS/At-rule#Conditional_Group_Rules" title="en/CSS/At-rule#Conditional_Group_Rules">grupos de reglas-at condicionales</a>. Si se definen varias reglas-at <code>@charset</code>, solamente se usará la primera. La regla-at <code>@charset</code> no puede ser usada dentro de un atributo <code>style</code> style en un elemento HTML o dentro del elemento {{ HTMLElement("style") }} , ya que en estos casos se tomará en cuenta la codificación de la página HTML contenedora.</p> <p>Esta regla-at es útil cuando se usan caracteres fuera de la codificación ASCII en alguna propiedad CSS, como {{ cssxref("content") }}.</p> <p>Habiendo diferentes maneras de definir la codificación de caracteres en una hoja de estilos, el navegador intentará seguir este orden para identificarlo (deteniéndose en el primer paso que dé resultado):</p> <ol> <li>El valor de la <a href="https://es.wikipedia.org/wiki/Marca_de_orden_de_bytes">Marca de orden de bytes</a> al principio del archivo.</li> <li>El valor dado por el atributo charset del encabezado HTTP <code>Content-Type:</code> o su equivalente en el protocolo usado para descargar la hoja de estilos.</li> <li>La regla-at <code>@charset</code> de CSS.</li> <li>Usar la codificación de caracteres definida en el documento de referencia: el atributo <code>charset</code> attribute del elemento {{ HTMLElement("link") }}. Este método es obsoleto para HTML5 y no debe ser usado.</li> <li>Asumir que el documento es UTF-8.</li> </ol> <h2 id="Sintaxis">Sintaxis</h2> <pre>@charset "UTF-8"; @charset 'iso-8859-15'; </pre> <p>donde:</p> <dl> <dt style="margin: 0 40px;"><em>charset</em></dt> <dd style="margin: 0 40px;">Es un valor {{cssxref("<string>")}} que denota la codificación de caracteres que será usada. Debe ser el nombre de una codificación de caracteres compatible con Web, definida en el <a href="http://www.iana.org/assignments/character-sets">registro IANA</a>. Si varios nombres están asociados a una codificación, solamente se usará el que está marcado como <em>principal</em>.</dd> </dl> <h3 id="Sintaxis_formal">Sintaxis formal</h3> {{csssyntax}} <h2 id="Ejemplos">Ejemplos</h2> <pre class="brush: css">@charset "UTF-8"; /* Establece la codificación de la hoja de estilos a Unicode UTF-8 */ @charset 'iso-8859-15'; /* Establece la codificación de la hoja de estilos a Latin-9 (idiomas de Europa Occidental, con símbolo de euro) */ @charset "UTF-8"; /* Inválido, hay un caracter (espacio) antes de la regla-at */ @charset UTF-8; /* Inválido, sin comillas simples o dobles, el valor no es una cadena {{cssxref("<string>")}} de CSS */ </pre> <h2 id="Especificaciones">Especificaciones</h2> <table class="standard-table"> <thead> <tr> <th scope="col">Especificación</th> <th scope="col">Estado</th> <th scope="col">Comentarios</th> </tr> </thead> <tbody> <tr> <td>{{ SpecName('CSS2.1', 'syndata.html#x57', '@charset') }}</td> <td>{{ Spec2('CSS2.1') }}</td> <td>Definición inicial</td> </tr> </tbody> </table> <h2 id="Browser_compatibility" name="Browser_compatibility">Compatibilidad de navegadores</h2> <p>{{ CompatibilityTable() }}</p> <div id="compat-desktop"> <table class="compat-table"> <tbody> <tr> <th>Característica</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari</th> </tr> <tr> <td>Soporte básico</td> <td>2.0</td> <td>{{ CompatGeckoDesktop("1.8") }}<sup>[1]</sup></td> <td>5.5<sup>[2]</sup></td> <td>9</td> <td>4</td> </tr> </tbody> </table> </div> <div id="compat-mobile"> <table class="compat-table"> <tbody> <tr> <th>Característica</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Soporte básico</td> <td>2.1</td> <td>{{ CompatGeckoMobile("1.8") }}</td> <td>5.5<sup>[2]</sup></td> <td>10.0</td> <td>4</td> </tr> </tbody> </table> </div> <p>[1] Firefox 1.0 soporta sólo una sintaxis inválida donde la codificación de caracteres no se establece entre comillas sencillas o dobles.</p> <p>[2] De IE 5.5 a IE 7, IE también soporta la sintaxis inválida donde la codificación de caracteres no se establece entre comillas sencillas o dobles.</p>