Linux não interpreta caracteres codificados em UTF8

7

Portanto, tendo o seguinte arquivo Adán-y-Eva-50x50.jpg quando tento acessá-lo, o apache traduz para Ad\xc3\xa1n-y-Eva-50x50.jpg e não o encontrará, mesmo que exista.

Isso acontece apenas para nomes de arquivos que contêm caracteres UTF8.

Eu já tenho a seguinte configuração no meu /etc/httpd/conf/httpd.conf

...
AddDefaultCharset UTF-8
...
IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable +Charset=UTF-8
...

E também adicionei isso à minha raiz .htaccess na primeira linha:

IndexOptions +Charset=UTF-8

Tudo isso sem efeito para carregar esse tipo de arquivo. Alguma sugestão?

UPDATE

Apenas para mencionar: estou executando os sites em um servidor CentOS com painel plesk pré-configurado

    
por w0rldart 07.01.2013 / 19:03

2 respostas

11

O problema aqui não parece estar no seu navegador nem na sua configuração do Apache. Você precisa verificar novamente as configurações de localidade do seu sistema.

Você precisa verificar se o local em que o apache está sendo executado está habilitado para UTF-8. Para fazer isso, você pode executar o comando:

$ sudo su -l -c locale www-data

onde www-data é o usuário do apache. Verifique se a localidade retornada não se parece com, por exemplo, es_ES.UTF-8 , significa que sua localidade não tem o UTF-8 ativado.

Se este for o caso, você pode alterar essa configuração, em uma máquina do CentOS, em /etc/sysconfig/i18n , alterando a linha LANG="es_ES" para LANG="es_ES.UTF-8" . Mas, ainda assim, para que isso funcione, seu sistema precisa do arquivo de idioma para esse idioma. Para verificar se existe, use locale -a para obter uma lista de localidades disponíveis.

Se o seu sistema não tiver uma localidade habilitada para UTF-8, você poderá gerar uma usando o comando:

$ sudo localedef -i es_ES -f UTF-8 es_ES.utf8 

e defina-o como seu idioma padrão.

Espero que esta ajuda!

    
por 13.01.2013 / 04:20
1

Além da resposta do fboaventura

Verifique se o local do apache está sendo executado

$ sudo su -l -c locale www-data

Para alterar a configuração de i18n em /etc/sysconfig/i18n :

Vá para o diretório de configuração do sistema CentOS

$ cd /etc/sysconfig

Faça uma cópia de backup do seu arquivo de configuração de idioma

$ cp i18n i18n.backup

Editar o arquivo de configuração de idioma usando nano

$ nano i18n

Edite o arquivo para incluir sua configuração

Por exemplo:

LANG="en_US.utf8"
SYSFONT="latarcyrheb-sun16"
SUPPORTED="en_US.utf8:en_US:en:fr_FR.utf8:fr_FR:fr :es_ES.utf8:es_ES:es:de_DE.utf8:de_DE:de:sv_SE.utf 8:sv_SE:sv:zh_CN.utf8:
zh_CN:zh:zh_TW.utf8:zh_TW:zh:ja_JP.utf8:ja_JP:ja:k o_KR.utf8:ko_KR:ko"

Salve o arquivo e reinicie o sistema.

Recursos adicionais

por 23.07.2014 / 01:27