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 codificación predeterminada.
Si el servidor es Apache, ¿hay alguna forma de configurar UTF-8 como predeterminado?
Actualización: Además, descubrí que en realidad está usando un DOCTYPE de HTML 3.2 y luego no hay ningún juego de caracteres ... por lo que no está configurando ninguna codificación. Pero, ¿hay alguna forma de cambiarlo para usar UTF-8?
apache
character-encoding
apache-config
nonopolaridad
fuente
fuente
/etc/apache2/conf-available/charset.conf
Agregue esto a su
.htaccess
:O, si tiene derechos de administrador, puede configurarlo globalmente editando
httpd.conf
y agregando:(Se puede utilizar
AddDefaultCharset
en.htaccess
demasiado, pero no va a afectar a los listados de directorios generados por Apache de esa manera.)fuente
.htaccess
puede afectar a todos los subdirectorios, probablemente apache buscará en.htaccess
el directorio principal hasta el directorio raíz de la carpeta del sitio web.htaccess
funciona en todos los servidores: también afecta a todos los subdirectorios. Sin embargo, las páginas de listado de directorios generadas por Apache no se pueden forzar a UTF-8 utilizando.htaccess
(AFAIK)..htaccess
archivos es generalmente una mala práctica. Los errores se vuelven más difíciles de rastrear cuando la configuración del servidor se distribuye en varios archivos. También hay un pequeño impacto en el rendimiento: con cada archivo solicitado, Apache tiene que leer el.htaccess
archivo del directorio y todos los.htaccess
archivos de los directorios principales..htaccess
por lo tanto, solo debe usarse para configuraciones específicas de directorio (por ejemplo, para evitar el acceso a un directorio específico) o cuando no hay absolutamente ninguna posibilidad de obtener derechos de administrador.Consulte la Directiva AddDefaultCharset , la Directiva AddCharset y este artículo .
fuente
Colocar
AddDefaultCharset UTF-8
en/etc/apache2/conf.d/charset
. De hecho, ya está allí. Solo tiene que descomentarlo eliminando lo anterior#
.fuente
/etc/apache2/conf.d/charset
. Es un archivo de inclusión personalizado por su distribución. Como cualquier otro archivo que no lo seahttpd.conf
./etc/apache2/conf-enabled/charset.conf
en mi distribución (Ubuntu 16.4). Tampoco funcionó.En .htaccess agregue esta línea:
Esto es para aquellos que no tienen acceso al archivo conf de su servidor. Es solo una cosa más para intentar cuando otros intentos fallaron.
En cuanto a 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 representa 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 conjunto de caracteres.
fuente
.htaccess
archivos, no comience ahora. Hay razones administrativas y de rendimiento por las cuales esta es una mala idea (tm)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 esté configurado lo siguiente:
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 tengan también un conjunto de caracteres. Vea esto para más información:
http://www.w3.org/TR/REC-html40/charset.html
fuente
Esto no ha sido probado pero probablemente funcionará.
En su archivo .htaccess ponga:
Sin embargo, esto requerirá mod_headers en el servidor.
fuente
<Files>
etiquetas.Para completar, en Apache2 en Ubuntu, encontrará el juego de caracteres predeterminado en charset.conf en conf-available.
Descomenta la línea
fuente
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 envíe estos archivos agregando ambas directivas:
fuente
Solo una pista si tiene nombres de archivo largos en utf-8: de forma predeterminada, se acortarán a 20 bytes, por lo que puede ocurrir que el último carácter se "corte a la mitad" y, por lo tanto, no se reconozca correctamente. Entonces es posible que desee configurar lo siguiente:
IndexOptions Charset=UTF-8 NameWidth=*
NameWidth
la configuración evitará acortar los nombres de sus archivos, haciéndolos aparecer y leer correctamente.Como ya mencionaron otros usuarios, esto debe agregarse en
httpd.conf
oapache2.conf
(si tiene derechos de administrador) o en.htaccess
(si no tiene).fuente
Solo déjalo 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
fuente
En mi caso agregar a .htaccess
fuente