Comment changer L'encodage par défaut en UTF-8 pour Apache?
J'utilise une société d'hébergement et il listera les fichiers dans un répertoire si le fichier index.html
n'est pas là, il utilise iso-8859-1 comme encodage par défaut.
Si le serveur est Apache, existe-t-il un moyen de définir UTF-8 par défaut à la place?
Update: de plus, j'ai découvert qu'il utilise réellement un DOCTYPE de HTML 3.2 et qu'il n'y a pas de charset du tout... donc, c'est de ne pas fixer n'importe quel encodage. Mais existe-t-il un moyen de le changer pour utiliser UTF-8?
11 réponses
Dans httpd.conf ajouter (ou changer si elle est déjà là):
AddDefaultCharset utf-8
Ajoutez ceci à votre .htaccess
:
IndexOptions +Charset=UTF-8
Ou, si vous avez des droits d'administrateur, vous pouvez le définir globalement en modifiant httpd.conf
et en ajoutant:
AddDefaultCharset UTF-8
(Vous pouvez également utiliser AddDefaultCharset
dans .htaccess
, mais cela n'affectera pas les listes de répertoires générées par Apache de cette façon.)
Voir AddDefaultCharset Directive, AddCharset la Directive, et cet article.
AddDefaultCharset utf-8
Mais je dois utiliser des caractères chinois maintenant et puis. Auparavant, j'ai traduit Caractères chinois au code Unicode et incluez - le dans le document en utilisant le
&#
hack. Mais il est seulement utile pour page ayant quelques caractères.Il y a une meilleure façon de le faire: encoder les informations du jeu de caractères dans le nom de fichier, et apache affichera le en-tête de codage approprié basé sur cela. Ceci est possible grâce à la
AddCharset
lignes dans le fichier conf, comme la ligne ci-dessous:
conf/httpd.conf
:
AddCharset UTF-8 .utf8
Donc si vous avez un fichier dont les noms se terminent par
.html.utf8
, apache servir la page comme si elle était encodée dans UTF-8 et va vider le bon directive de codage de caractères dans le tête conséquence.
Placez AddDefaultCharset UTF-8
dans /etc/apache2/conf.d/charset
. En fait, elle est déjà là. Il vous suffit de le décommenter en supprimant le #
précédent.
Dans .htaccess ajouter cette ligne:
AddCharset utf-8 .html .css .php .txt .js
Ceci est pour ceux qui n'ont pas accès au fichier conf de leur serveur. C'est juste une chose de plus à essayer lorsque d'autres tentatives ont échoué.
En ce qui concerne les problèmes de performance concernant l'utilisation de .htaccess Je ne l'ai pas vu cela. Mes temps de chargement de page typiques sont 150-200 mS avec ou sans .htaccess
À quoi sert la performance si votre page ne s'affiche pas correctement. La plupart des serveurs partagés ne permettent pas à l'utilisateur d'accéder au fichier de configuration qui est l'endroit préféré pour ajouter un jeu de caractères.
Je ne suis pas sûr si vous avez accès à la configuration Apache (httpd.conf) mais vous devriez pouvoir définir une Directive AddDefaultCharset. Voir:
Http://httpd.apache.org/docs/2.0/mod/core.html
Recherchez le mod_mime.c module et assurez-vous que ce qui suit est défini:
AddDefaultCharset utf-8
Ou L'équivalent Apache 1.x docs ( http://httpd.apache.org/docs/1.3/mod/core.html#adddefaultcharset).
Cependant, cela ne fonctionne que lorsque " le type de contenu de la réponse est texte / brut ou texte / html".
Vous devez également vous assurer que vos pages ont également un jeu de caractères. Voir ceci pour plus d'informations:
Ceci n'est pas testé mais fonctionnera probablement.
Dans votre .fichier htaccess mettre:
<Files ~ "\.html?$">
Header set Content-Type "text/html; charset=utf-8"
</Files>
Cependant, cela nécessitera mod_headers sur le serveur.
Pour être complet, sur Apache2 sur Ubuntu, vous trouverez le jeu de caractères par défaut dans charset.conf in conf-disponible.
Décommenter la ligne
AddDefaultCharset UTF-8
Où tous les fichiers HTML sont en UTF-8 et n'ont pas de balises meta pour le type de contenu, j'ai seulement pu définir la valeur par défaut nécessaire pour que ces fichiers soient envoyés par Apache 2.4 en ajoutant les deux directives:
AddLanguage ru .html
AddCharset UTF-8 .html
Juste un indice si vous avez de longs noms de fichiers en utf-8: par défaut, ils seront raccourcis à 20 octets, il peut donc arriver que le dernier caractère soit "coupé en deux" et donc non reconnu correctement. Ensuite, vous pouvez définir ce qui suit:
IndexOptions Charset=UTF-8 NameWidth=*
NameWidth
le réglage empêchera de raccourcir vos noms de fichiers, les rendant correctement affichés et lisibles.
, Comme d'autres utilisateurs déjà mentionné, cela devrait être ajouté dans httpd.conf
ou apache2.conf
(si vous avez des droits d'administrateur) ou dans .htaccess
(Si vous ne le faites pas).
Laissez-le vide: 'default_charset' in WHM :::::: default_charset =''
P. S. - dans WHM go - - - - - - - -) accueil "Configuration du Service" éditeur de Configuration PHP - - - -) cliquez sur 'Mode Avancé' - - - -) trouvez 'default_charset' et laissez-le vide - - - - juste rien, pas utf8, pas ISO