Como ligar corretamente para arquivos com acentos em seus nomes em um envirionment LAMP

votos
0

Fiz um script php que percorre arquivos em um diretório e saídas links para eles. Os nomes dos arquivos estão em espanhol para que alguns contêm caracteres como A, E, etc.

Meu script funciona bem na minha máquina dev que é janelas + apache + php, no entanto, ele não funciona no servidor da minha hospedagem, que é Linux + Apache + PHP, ele não encontrar o arquivo.

Algumas pesquisas têm sugerido a utilização urlencode (), no entanto, quando eu fizer isso ele quebra sob minha máquina dev por isso não é aceitável para mim, embora eu não tentei isso no meu servidor web.

EDIT: Mais detalhes sobre o erro na máquina dev ao usar urlencode ().

Parece haver 2 erros, é quando o nome do arquivo tem caracteres como A, E, etc. E o outro quando o nome do arquivo tem espaços em branco.

Um nome de arquivo com espaços em branco (. Ie 'Calidad total .doc') fica no seguinte link http: //localhost/temarios/docs/Calidad+total+.doc que me dá um 404 arquivo de erro não foi encontrado. Substituindo o '+' s para ' 's na barra de endereços faz com que funcione bem.

Um nome de arquivo com caracteres acentuados (. Ie Economía.doc) recebe o link http: //localhost/temarios/docs/Econom%EDa.doc que me dá um erro 403 Forbidden. Substituindo o '% ED' para um 'i' na barra de endereços faz com que funcione bem.

Eu testei no Firefox 3 e janelas IE8 7 beta e a mesma coisa acontece em ambos os navegadores.

Publicado 09/02/2009 em 22:55
fonte usuário
Em outras línguas...                            


1 respostas

votos
1

A razão que você deve urlencode-los é porque URLs devem ser constituídos exclusivamente de caracteres US-ASCII imprimíveis.

"URLs são escritos apenas com os gráficos imprimíveis caracteres do conjunto de caracteres US-ASCII codificada."

Pode ser sábio para você postar detalhes do erro que você recebe em sua máquina dev e descobrir o que há de errado lá.

Respondeu 09/02/2009 em 23:39
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more