Bonjour,
Ce sont les navigateurs qui par défaut encodent les caractères
internationaux des URLs en UTF-8 et ce depuis au moins une décennie, pas
PHP 5.5, ni PmWiki.
PmWiki.php possède une commande qui décode automatiquement de tels
adresses en ISO8859-1, lignes
322-323. Si un des scripts nommés xlpage*.php n'est pas chargé, ça
devrait marcher tout seul, pas besoin de URL-rewriting.
En effet, je viens de tester ça sur mon serveur local et je n'ai aucun
problème, je peux accéder aux pages Élèves.Élèves et Élèves.Chloé.
Le navigateur en revanche affiche bien l'adresse :
http://localhost/pmwiki/field-iso/index.php?n=%c9l%e8ves.Chlo%e9
pour que je puisse copier les octets exacts.
Mais mème si je charge :
http://localhost/pmwiki/field-iso/index.php?n=%C3%89l%C3%A8ves.Chlo%C3%A9
ou :
http://localhost/pmwiki/field-iso/index.php?n=Élèves.Chloé
la bonne page sera affichée.
Il faut donc retirer toute modification de URL-Rewriting et toute
inclusion de fichier commençant par "xlpage".
Petko
---
Change log : http://www.pmwiki.org/wiki/PmWiki/ChangeLog
Release notes : http://www.pmwiki.org/wiki/PmWiki/ReleaseNotes
If you upgrade : http://www.pmwiki.org/wiki/PmWiki/Upgrades
On 2016-07-25 21:33, Pierre ROUZEAU wrote:
Bon, l'envoi de ce courriel (qui m'affiche des horreurs à l'écran) m'a
donné une réponse partielle. L'encodage UTF-8 fait deux caractères,
chacun de ces caractères pouvant se décoder en ISO.
En faisant un url rewrite lisant les deux caractères ISO et le
transformant dans le vrai caractère ISO attendu, je peux capturer le
groupe. Si la page a des caractères accentués, ça ne marche pas, mais
au moins, l'utilisateur atterrit sur le bon groupe. Sinon, je peux
faire un url rewrite pour chaque page. Pas très drôle, mais ça devrait
marcher.
éÉè
Le 25/07/2016 à 21:23, Pierre ROUZEAU a écrit :
Bonjour, sur pmwiki 2.2.71, j'ai des groupes et des pages qui
comportent des lettres accentuées.
Les noms de fichiers associés sont en ISO-8859-1
Quand on appelle une page avec un lien interne, son nom est encodé
correctement, par exemple un 'É' est codé '%c9'
Depuis PHP 5.5 (et même un peu avant, je crois), les appels externes
sur les pages avec lettres accentuées ne fonctionnent pas.
Mon enregistreur de page 404 me montre que l'encodage des url est fait
en UTF8 (lecture des variables système), soit pour un 'É', '%C3%89'
J'ai essayé de faire des url rewrite, mais si le rewriter m'envoie
bien des caractères en ISO, il n'arrive pas à lire les caractères en
UTF-8, j'ai aussi essayé en faisant des escape des '%'.
J'ai aussi essayé d'ajouter AddDefaultCharset ISO-8859 ou
AddDefaultCharset ISO-8859, mais ça ne change rien.
Je pense que ce n'est pas le problème, puisque le rewriter encode bien
en ISO. C'est la lecture d'adresses qui est transformée en UTF-8.
Ditto si je tape 'É' dans ma barre d'adresse, c'est décodé en UTF-8.
J'ai passé plusieurs heures la-dessus et je ne vois aucune solution.
Certains liens vers mes pages sont probablement très anciens et
supprimer les accents ne changerait rien à l'échec de recherche de
page.
Une idée ?
_______________________________________________
pmwiki-users-fr mailing list
pmwiki-users-fr@pmichaud.com
http://www.pmichaud.com/mailman/listinfo/pmwiki-users-fr