Linux Erreur non trouvée pour les noms de fichiers avec des caractères non ASCII

Tout simplement, je ne peux pas télécharger les fichiers hébergés sur mon serveur Web s’ils ont des caractères spéciaux dans le nom du fichier, car je reçois 404. entrer la description de l'image ici

Si je crée un fichier appelé olá.txt, je ne trouve pas l’URL correcte pour le télécharger. J’ai essayé tous les moyens possibles pour le télécharger:

mydomain.com/olá.txt mydomain.com/ol%C3%A1.txt 

et je reçois toujours un 404 d’Apache Tomcat 7.0.3, mais si je change le nom de fichier en ola.txt, tout va bien.

J’ai ajouté AddDefaultCharset utf-8 au httpd.conf mais j’ai toujours le problème.

Je veux dire, il devrait être possible de télécharger des fichiers avec des noms contenant des caractères non ascii, non?

Mise à jour: Mon server.xml a:

  

Mettre à jour:

 echo -n olá | od -An -tx1 = 6f 6c c3 a1 echo $LANG = en_US.UTF-8 

lieu:

 LANG=en_US.UTF-8 LANGUAGE=en_US:en 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= 

Vous devrez peut-être append ceci à la dans votre fichier server.xml pour Tomcat:

 URIEncoding="UTF-8" 

Plus d’informations:

Comment faire fonctionner UTF-8 dans les applications Web Java?

problème d’urf-8


J’ai des abeilles qui ont du mal à le reproduire de mon côté. J’ai effectué une installation propre de Tomcat 7.0.26 sur Ubuntu 12.04.4 LTS, créé /var/lib/tomcat7/webapps/ROOT/testé.txt et servi avec succès ce fichier sur mon navigateur à l’ http://localhost:8080/testé.txt .

Ceci est ma balise de connecteur dans /etc/tomcat7/server.xml :

  

Je ne peux pas dire pourquoi le vôtre ne fonctionne pas, mais je peux au moins confirmer que la diffusion de fichiers encodés au format UTF-8 avec tomcat7 est possible.

Le problème n’a peut-être rien à voir avec le codage Tomcat ou l’URL, et cela pourrait en fait poser problème avec l’encodage de la connexion FTP (ou avec tout ce que vous utilisez pour envoyer les fichiers à l’hôte distant).

Si elles diffèrent, vous enverriez un fichier que vous verriez comme “testé”, et le demander à la même source renverrait bien sûr “testé”. Mais sur le système de fichiers, le fichier pourrait être codé différemment ( même si LANG est correctement défini).

Essayez de créer le fichier à partir de Tomcat et de le demander dans des formulaires UTF8 et encodés en URL. Si cela fonctionne, essayez de regarder le nom du fichier à partir de votre client FTP.