Content-Type "text/xml; charset=utf-8"
Isso é redundante. Para XML, a declaração <?xml?>
tem precedência sobre o cabeçalho Content-Type. Se a declaração XML for omitida, você terá UTF-8 de qualquer maneira.
Normalmente, deixo o charset fora do XML. Como o XML tem seu próprio mecanismo de codificação de caracteres in-line, o cabeçalho Content-Type é desnecessário e só pode atrapalhar a escolha acidental do tipo errado para arquivos sem encoding
especificados que são tratados como UTF-8 em qualquer outro lugar .
A única vez que você faz precisa de um parâmetro charset para XML é quando você está veiculando um conjunto de caracteres não compatível com ASCII, geralmente UTF-16, onde, caso contrário, o analisador não obteria até onde ler <?xml
. Mas é bem raro você querer fazer isso. O UTF-16 não é um ótimo armazenamento de arquivos / formato over-the-wire.
Content-Type "application/xml"
O tipo de mídia application/xml
é especificado por RFC3023 e um parâmetro charset
foi definido explicitamente para isso. Então você pode usar charset
se quiser (embora, conforme acima, eu geralmente não queira).
Content-Type "application/x-javascript"
É um tipo não oficial, portanto, não há especificação para dizer se existe um parâmetro charset
ou o que ele poderia fazer. Provavelmente, esse tipo deve ser evitado em favor de text/javascript
(tradicional) ou application/javascript
(definido por RFC4329 ) .
Na prática, definir um charset
em seus recursos JavaScript não é necessariamente suficiente, pois o IE o ignora completamente.
Resumo da precedência (maior para menor) dada aos mecanismos de conjunto de caracteres de script:
-
IE: atributo
<script charset>
, conjunto de caracteres da página principal -
Opera: charset do arquivo de script, charset da página pai
-
Mozilla, Webkit: conjunto de caracteres do arquivo de script,
<script charset>
attribute, charset da página pai