[pmwiki-users-fr] Lettres accentuées dans les noms de pages et de groupe

Petko Yotov 5ko at 5ko.fr
Lun 25 Juil 15:51:51 CDT 2016


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 ?
>> 



Plus d'informations sur la liste de diffusion pmwiki-users-fr