Lidar com nomes de arquivos UTF-8 no Centos 7 e Apache 2.4

1

Minhas imagens cujos nomes contêm letras acentuadas (é, à etc.) não são acessíveis via Apache (erro 404).

Acho que não está relacionado ao Apache. Eu verifiquei o arquivo de configuração:

AddDefaultCharset UTF-8

Quando eu conecto via Putty, e executo o comando "ls -la" para listar as imagens, as letras acentuadas são substituídas por "?" no console.

Estas são as informações relevantes que podem ajudar:

> echo $LANG
en_US.UTF-8
> cat /etc/environment
empty file
> locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

Eu encontrei alguns tutoriais, mas eles são aplicáveis ao Centos 5/6.

PS: Renomear arquivos é uma solução possível, mas não previsível no meu caso.

    
por AFA Med 28.01.2016 / 18:01

2 respostas

1

Primeiro @Simohammedhttc : Você está usando nomes corretos! Por favor, não recorra a renomear arquivos. É o ano de 2016. Temos toda a tecnologia disponível para que ninguém tenha que castrar alguns nomes de arquivos apenas porque os nomes não são ingleses.

As configurações de localidade parecem boas. O fato de que putty tem um problema exibindo caracteres não-ASCII (ou seja, mostrando? Em vez) pode ser um problema totalmente putty. Não usando putty nos dias de hoje, mas lembro-me de brincar com as configurações de putty para acertar.

Acabei de verificar que o meu CentOS 7 atual terá o prazer de atender a essa URL de umlaut através do Apache2:

http://<server>/äöü.txt

O arquivo de texto contém novamente o mesmo umlauts. Browser (Safari) diz que a codificação é UTF-8. Colocar isso em algum HTML também funciona:

  • <a href="äöü.txt">äöü.txt</a></td>
  • claro que isso também: <a href="%c3%a4%c3%b6%c3%bc.txt">äöü.txt</a>

Por favor, tente se as imagens podem ser acessadas diretamente, colando o URL da imagem na barra de endereços do navegador.

Se isso funcionar, verifique como os links para as imagens são gerados. Dê uma olhada na fonte:

  • Verifique se o navegador reconhece tudo como UTF-8.
  • Verifique se os URLs de imagem não estão confusos com nenhum processamento intermediário.
por 28.01.2016 / 22:45
1

Finalmente, resolvi o problema
Eu instalei o convmv e executei o seguinte comando na pasta de imagens:

// -r => recursively
// --notest => don't show me the potential outcome, do convert filenames
// -f => from
// -t => to
convmv -r --notest -f iso-8859-15 -t utf8 images_folder

Esse problema está relacionado a arquivos que foram criados no ambiente Windows e, em seguida, enviados para o servidor Centos.

Eu criei um arquivo diretamente em Centos com letras acentuadas em seu nome de arquivo e ele foi listado sem nenhum problema em Putty.

cd images_folder
touch étude.png
ls -la // file étude.png listed without any problem
    
por 29.01.2016 / 15:03