español - ¿Cómo cambiar la codificación predeterminada a UTF-8 para Apache?
java acentos utf-8 (11)
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).
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 codificación 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 codificación. Pero, ¿hay alguna manera de cambiarlo para usar UTF-8?
Coloque AddDefaultCharset UTF-8
en /etc/apache2/conf.d/charset
. De hecho, ya está allí. Solo tiene que descomentarlo quitando el #
anterior.
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 codificación 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 codificación de caracteres en el encabezado correspondiente.
Cuando todos los archivos HTML están en UTF-8 y no tienen metaetiquetas 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
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 intentos.
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.
En httpd.conf add (o cambie si ya está allí):
AddDefaultCharset utf-8
Esto no está probado, pero probablemente funcione.
En su archivo .htaccess, escriba:
<Files ~ "/.html?$">
Header set Content-Type "text/html; charset=utf-8"
</Files>
Sin embargo, esto requerirá mod_headers en el servidor.
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:
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
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
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).