IIS 6 - ASP classique - Définissez le type de contenu de l'en-tête de réponse *.asp sur « text/html;charset=UTF-8 »
-
14-11-2019 - |
Question
Comment puis-je définir *.asp
(ASP classique) dans un site Web sous IIS pour que le type de contenu de l'en-tête de réponse soit défini sur text/html;charset=UTF-8
?À l'heure actuelle, les fichiers sont servis comme Content-Type=text/html
.
Une autre approche consiste à ajouter <% Response.Charset = "UTF-8" %>
à chaque page, mais je me demande s'il existe un moyen de le faire globalement.
Merci!-K
La solution
Il n'existe aucun moyen de spécifier globalement le CharSet
pour une candidature.
Il y a en fait plus que simplement dire au client qu'il obtient UTF-8.Vous devez également vous assurer que l'objet de réponse est configuré sur la page de codes 65001.Cela peut au moins être défini globalement en utilisant le AspCodePage
valeur de la métabase au niveau de l'application (ou directement dans la fonctionnalité ASP du gestionnaire IIS7).
Cependant, ma préférence pour ce genre de chose est d'éviter de dépendre du serveur pour qu'il soit configuré correctement.Chaque page définit sa page de codes (soit avec le @CODEPAGE
directive ou avec Response.Codepage
) et son CharSet
.
J'ai deux raisons pour cette approche.La première est qu'en fin de compte, le CharSet/Codepage est un choix fait au moment de la création et de l'enregistrement du fichier.L'autre est que lors de la dépolymérisation/copie du site, moins vous devez vous rappeler de configurer, mieux c'est.
Autres conseils
MODIFICATION 1 :J'ai testé cela avec les outils de développement d'IE9 (onglet réseau),
<%
response.ContentType = "text/html;charset=UTF-8"
%>
Résultats dans un en-tête HTML pour Content-Type de :
text/html;charset=UTF-8
Alors que le définir au niveau MIME sur IIS7 ne le fait pas - je mettrai à jour ma réponse lorsque je comprendrai pourquoi.
MODIFIER 2 :Je n'arrive pas à faire fonctionner l'approche MIME globale sur mon banc de test - désolé !Il y a des indices à ce sujet en ligne : http://forums.iis.net/p/1166956/1941076.aspx#1941076
Je suppose que tu devras juste ouvrir le response.ContentType = "text/html;charset=UTF-8"
dans un <!-- #include file="..\includes\common.asp" -->
tapez include (ou similaire).