Problème de caractères spéciaux...

Résolu
JeuDuTaquin Messages postés 249 Date d'inscription mardi 4 juillet 2017 Statut Membre Dernière intervention 31 mai 2023 - Modifié le 10 mai 2020 à 17:15
JeuDuTaquin Messages postés 249 Date d'inscription mardi 4 juillet 2017 Statut Membre Dernière intervention 31 mai 2023 - 11 mai 2020 à 13:49
Salut à tous,

Le script du site "abandonware.org" souffre d'un problème pour le chargement de fichiers image à partir d'un script PHP.

En effet, les caractères français dans le URL sont faux.

Nous avons un fichier texte en UTF8, et le script récupère un nom de fichier corrompu.
Le serveur n'aime pas trop ça et donne une erreur 404.

Nous sommes sur le PHP 7.4 et le script problématique est ici:
http://download.abandonware.org/magazines/Generation%20PC/test/

En utilisent les caractère "plain-text"(Windows
1252), le chargement se fait bien:
https://abandonware-magazines.org/test/

Donc, il y a un problème, soit au niveau serveur, soit au niveau script…
Ou peut-être bien les deux.

Ma question, pourquoi le script et le serveur ne se comprennent pas?

Cela peut venir de la liste des images en UTF8... et lu en Windows
1252. (liste des images, une ligne URL par image)

De la lecture de la liste dans script: htmlentities(), rawurlencode() ou utf8_decode(), sachant que rawurlencode prend les caractères de l'UTF8 sans l'interpréter.

Peut-on adapter le script pour donner un format identique et surtout compatible?

Malheureusement, je n'ai pas accès directement aux tests, mais toutes suggestions nous ravirait.

Merci pour votre aide future.

Nota: Le problème est apparu après un changement de serveur il y a un an.

5 réponses

JeuDuTaquin Messages postés 249 Date d'inscription mardi 4 juillet 2017 Statut Membre Dernière intervention 31 mai 2023 7
Modifié le 10 mai 2020 à 17:22
Salut,
Le serveur est en Windows 1252, le fichier texte en UTF8.
Y a t'il une astuce pour faire la conversion de l'URL… ?
0
JeuDuTaquin Messages postés 249 Date d'inscription mardi 4 juillet 2017 Statut Membre Dernière intervention 31 mai 2023 7
Modifié le 11 mai 2020 à 02:09
Nous nous orientons sur une configuration serveur:
export LANG=fr_FR.UTF-8
export LANGUAGE=
export LC_CTYPE="fr_FR.UTF-8"
export LC_NUMERIC="fr_FR.UTF-8"
export LC_TIME="fr_FR.UTF-8"
export LC_COLLATE="fr_FR.UTF-8"
export LC_MONETARY="fr_FR.UTF-8"
export LC_MESSAGES="fr_FR.UTF-8"
export LC_PAPER="fr_FR.UTF-8"
export LC_NAME="fr_FR.UTF-8"
export LC_ADDRESS="fr_FR.UTF-8"
export LC_TELEPHONE="fr_FR.UTF-8"
export LC_MEASUREMENT="fr_FR.UTF-8"
export LC_IDENTIFICATION="fr_FR.UTF-8"
export LC_ALL=

Pour rendre compatible les noms d'URLs…
Chose qui n'a pas été faite lors de la migration.

Mais ces changement semblent avoir effet sur les fichiers récents, et non sur les anciens.
0
@karamel Messages postés 1855 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 18 avril 2024 153
11 mai 2020 à 11:26
bonjour

je suis pâs un pro sur le sujet mais normalement c'est bien le serveur qui doit être configuré pour fonctionner en utf 8 et si je ne dit pas d'erreur il faudra peut convertir
certain fichier en utf .
0
JeuDuTaquin Messages postés 249 Date d'inscription mardi 4 juillet 2017 Statut Membre Dernière intervention 31 mai 2023 7
Modifié le 11 mai 2020 à 13:41
Salut Karamel,
Oui, effectivement, c'est ce qui a été fait pour les fichiers texte… mais côté serveur, il semble être configuré par défaut en Windows 1252.
Alors ça marche pô.
Mais, l'inconnu porte sur la rétroactivité (pô nucélaire) de la renomation (changement de nom!), des fichiers déjà uploadés.
Il est toujours possible, comme je fais à petite échelle sur mes sites, de renommer les noms avec accents, mais là ça commence à faire du travail.
Je me demande aussi si le logiciel FTP de transfère n'envoie pas des noms avec un codage fallacieux en Windows 1252 et pas en UTF8.
On fait les tests avec la nouvelle config serveur...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
JeuDuTaquin Messages postés 249 Date d'inscription mardi 4 juillet 2017 Statut Membre Dernière intervention 31 mai 2023 7
11 mai 2020 à 13:49
Voilà, c'est résolu.

Pour régler ce problème (Fred_L WebMaster):

Sur le serveur, j'ai lancé la commande
convmv -r -f iso-8859-1 -t UTF-8 --notest
et cela a résolu le problème.

L'origine du problème était donc bien que les noms de certains fichiers étaient en ISO-8859-1 au lieu de UTF-8.

Merci à tous.
0
Rejoignez-nous