¿Cómo cambiar la encoding predeterminada a UTF-8 para Apache?

Estoy usando una empresa de alojamiento y enumerará los archivos en un directorio si el archivo index.html no está allí, usa iso-8859-1 como la encoding predeterminada.

Si el servidor es Apache, ¿hay alguna forma de configurar UTF-8 como el valor predeterminado?

Actualización: Además, descubrí que en realidad está usando un DOCTYPE de HTML 3.2 y luego no hay charset … así que no está configurando ninguna encoding. Pero, ¿hay alguna manera de cambiarlo para usar UTF-8?

En httpd.conf add (o cambie si ya está allí):

 AddDefaultCharset utf-8 

Agregue esto a su .htaccess :

 IndexOptions +Charset=UTF-8 

O bien, si tiene derechos de administrador, puede configurarlo globalmente editando httpd.conf y agregando:

 AddDefaultCharset UTF-8 

(También puede usar AddDefaultCharset en .htaccess , pero no afectará los listados de directorios generados por Apache de esa manera).

Consulte la directiva AddDefaultCharset , la directiva AddCharset y este artículo .

 AddDefaultCharset utf-8 

Pero tengo que usar caracteres chinos de vez en cuando. Anteriormente, traduje caracteres chinos al código Unicode y los incluyo en el documento con el &# hack. Pero solo es útil para páginas que tienen algunos caracteres.

Hay una forma mejor de hacerlo: codificar la información del juego de caracteres en el nombre del archivo, y apache mostrará el encabezado de encoding adecuado en función de eso. Esto es posible gracias a las líneas AddCharset en el archivo conf, como la siguiente línea:

conf/httpd.conf :

 AddCharset UTF-8 .utf8 

Por lo tanto, si tiene un archivo cuyos nombres terminan en .html.utf8 , apache lo .html.utf8 como si estuviera codificado en UTF-8 y arrojará la correspondiente directiva de encoding de caracteres en el encabezado correspondiente.

Coloque AddDefaultCharset UTF-8 en /etc/apache2/conf.d/charset . De hecho, ya está allí. Solo tiene que descomentarlo quitando el # anterior.

En .htaccess agregue esta línea:

 AddCharset utf-8 .html .css .php .txt .js 

Esto es para aquellos que no tienen acceso al archivo conf de su servidor. Es solo una cosa más para probar cuando fallaron otros bashs.

En cuanto a los problemas de rendimiento con respecto al uso de .htaccess, no he visto esto. Mis tiempos de carga de página típicos son 150-200 mS con o sin .htaccess

¿De qué sirve el rendimiento si su página no se procesa correctamente? La mayoría de los servidores compartidos no permiten el acceso del usuario al archivo de configuración, que es el lugar preferido para agregar un juego de caracteres.

No estoy seguro de si tiene acceso a la configuración de Apache (httpd.conf) pero debería poder establecer una directiva AddDefaultCharset. Ver:

http://httpd.apache.org/docs/2.0/mod/core.html

Busque el módulo mod_mime.c y asegúrese de que se establezca lo siguiente:

 AddDefaultCharset utf-8 

o los documentos equivalentes de Apache 1.x ( http://httpd.apache.org/docs/1.3/mod/core.html#adddefaultcharset ).

Sin embargo, esto solo funciona cuando “el tipo de contenido de respuesta es text / plain o text / html”.

También debe asegurarse de que sus páginas también tengan un conjunto de caracteres. Vea esto para más información:

http://www.w3.org/TR/REC-html40/charset.html

Esto no está probado, pero probablemente funcione.

En su archivo .htaccess, escriba:

  Header set Content-Type "text/html; charset=utf-8"  

Sin embargo, esto requerirá mod_headers en el servidor.

Para completar, en Apache2 en Ubuntu, encontrará el juego de caracteres predeterminado en charset.conf en conf-available.

Descomenta la línea

 AddDefaultCharset UTF-8 

Cuando todos los archivos HTML están en UTF-8 y no tienen metatags para el tipo de contenido, solo pude establecer el valor predeterminado necesario para que Apache 2.4 los envíe a estos archivos agregando ambas directivas:

 AddLanguage ru .html AddCharset UTF-8 .html 

Solo una pista si tienes nombres de archivo largos en utf-8: de forma predeterminada se acortarán a 20 bytes, por lo que puede suceder que el último carácter se “corte a la mitad” y, por lo tanto, no se reconozca correctamente. Entonces puede querer configurar lo siguiente:

IndexOptions Charset=UTF-8 NameWidth=*

NameWidth configuración NameWidth que se NameWidth los nombres de sus archivos, lo que hará que se muestren y sean legibles.

Como ya han mencionado otros usuarios, esto debería agregarse en httpd.conf o apache2.conf (si tiene derechos de administrador) o en .htaccess (si no lo hace).

Simplemente déjelo vacío: 'default_charset' in WHM :::::: default_charset =''

ps – En WHM vaya ——–) Inicio »Configuración del servicio» Editor de configuración PHP —-) haga clic en ‘Modo avanzado’ —-) encuentre ‘default_charset’ y déjelo en blanco —- solo nada, no utf8, no ISO