[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