Estou usando uma empresa de hospedagem e ele listará os arquivos em um diretório, se o arquivo index.html
não estiver lá, ele usa iso-8859-1 como a codificação padrão.
Se o servidor for Apache, existe uma maneira de definir o UTF-8 como padrão?
Atualização: Além disso, descobri que ele está realmente usando um DOCTYPE de HTML 3.2 e, em seguida, não existe um conjunto de caracteres ... portanto, não está definindo nenhuma codificação. Mas existe uma maneira de alterá-lo para usar UTF-8?
apache
character-encoding
apache-config
falta de polaridade
fonte
fonte
/etc/apache2/conf-available/charset.conf
Adicione isto ao seu
.htaccess
:Ou, se você tiver direitos de administrador, poderá configurá-lo globalmente editando
httpd.conf
e adicionando:(Você pode usar
AddDefaultCharset
no.htaccess
também, mas isso não afetará as listagens de diretório Apache gerados dessa forma.)fonte
.htaccess
pode afetar todos os subdiretórios, bem como, provavelmente apache irá procurar qualquer.htaccess
o diretório pai todo o caminho para o diretório raiz da pasta website.htaccess
funciona em todos os servidores - afeta também todos os subdiretórios. No entanto, as páginas de listagem de diretório geradas pelo Apache não podem ser forçadas a UTF-8 usando.htaccess
(AFAIK)..htaccess
arquivos geralmente é uma prática ruim. Os erros se tornam mais difíceis de rastrear quando as configurações do servidor são distribuídas por vários arquivos. Também há um pequeno impacto no desempenho: com cada arquivo solicitado, o Apache precisa ler o.htaccess
arquivo do diretório e todos os.htaccess
arquivos dos diretórios pai..htaccess
portanto, deve ser usado apenas para configurações específicas do diretório (por exemplo, impedir o acesso a um diretório específico) ou quando não houver absolutamente nenhuma possibilidade de obter direitos de administrador.Consulte Diretiva AddDefaultCharset , Diretiva AddCharset e este artigo .
fonte
Coloque
AddDefaultCharset UTF-8
em/etc/apache2/conf.d/charset
. De fato, já está lá. Você apenas precisa remover o comentário removendo o anterior#
.fonte
/etc/apache2/conf.d/charset
. É um arquivo de inclusão personalizado por sua distribuição. Como qualquer outro arquivo que não sejahttpd.conf
./etc/apache2/conf-enabled/charset.conf
na minha distribuição (Ubuntu 16.4). Também não funcionou.Em .htaccess, adicione esta linha:
Isso é para aqueles que não têm acesso ao arquivo conf do servidor. É apenas mais uma coisa a tentar quando outras tentativas falharam.
Quanto aos problemas de desempenho relacionados ao uso do .htaccess, eu não vi isso. Meus tempos de carregamento de página típicos são 150-200 mS com ou sem .htaccess
Qual é o bom desempenho se sua página não for renderizada corretamente. A maioria dos servidores compartilhados não permite acesso do usuário ao arquivo de configuração, que é o local preferido para adicionar um conjunto de caracteres.
fonte
.htaccess
arquivos, não inicie agora. Há desempenho e administrativas razões pelas quais esta é uma má idéia (tm)Não tenho certeza se você tem acesso à configuração do Apache (httpd.conf), mas deve poder definir uma diretiva AddDefaultCharset. Vejo:
http://httpd.apache.org/docs/2.0/mod/core.html
Procure o módulo mod_mime.c e verifique se o seguinte está definido:
ou os documentos Apache 1.x equivalentes ( http://httpd.apache.org/docs/1.3/mod/core.html#adddefaultcharset ).
No entanto, isso só funciona quando "o tipo de conteúdo da resposta é texto / sem formatação ou texto / html".
Você também deve garantir que suas páginas também tenham um conjunto de caracteres. Veja isto para mais informações:
http://www.w3.org/TR/REC-html40/charset.html
fonte
Isso não foi testado, mas provavelmente funcionará.
No seu arquivo .htaccess, coloque:
No entanto, isso exigirá mod_headers no servidor.
fonte
<Files>
tags.Para completar, no Apache2 no Ubuntu, você encontrará o charset padrão em charset.conf em conf-available.
Remova o comentário da linha
fonte
Onde todos os arquivos HTML estão em UTF-8 e não possuem metatags para o tipo de conteúdo, eu só consegui definir o padrão necessário para que esses arquivos sejam enviados pelo Apache 2.4 adicionando as duas diretivas:
fonte
Apenas uma dica se você tiver nomes de arquivos longos em utf-8: por padrão, eles serão encurtados para 20 bytes, portanto, pode acontecer que o último caractere seja "cortado ao meio" e, portanto, não seja reconhecido corretamente. Você pode definir o seguinte:
IndexOptions Charset=UTF-8 NameWidth=*
NameWidth
Essa configuração evitará encurtar os nomes dos arquivos, tornando-os exibidos e legíveis corretamente.Como outros usuários já mencionados, isso deve ser adicionado em
httpd.conf
ouapache2.conf
(se você tiver direitos de administrador) ou em.htaccess
(se não tiver).fonte
Apenas deixe em branco:
'default_charset' in WHM :::::: default_charset =''
ps - No WHM, vá para --------) Início »Configuração do Serviço» Editor de Configuração do PHP ----) clique em 'Modo Avançado' ----) encontre 'default_charset' e deixe em branco ---- apenas nada, nem utf8, nem ISO
fonte
No meu caso, adicione ao .htaccess
fonte