Bonjour !
Je rencontre un problème dont je n'arrive pas à comprendre les raisons.
L'environnement dans lequel la question se pose est plus complexe, mais j'ai réussi à simplifier le problème jusqu'à cela :
Si dans une page HTML sans rien de déclaré au niveau du charset, je colle la ligne de texte suivante :
ça me donne
HeÌleÌleÌGaÌ‚naÌ€Çä HélénéGânà Çä
Les deux "HéléléGânàÇä" ne sont pas identiques sur la sortie, alors qu'ils semblaient l'être dans le code.
Il faut savoir que le premier est issu d'un copier/coller depuis mon système de fichier, alors que j'ai écris le second au clavier dans l'éditeur de texte.
(le problème se reproduit à l'identique lorsque mon script php récupère le nom du fichier depuis le système de fichier)
Le fichier HTML est enregistré en UTF-8. Le navigateur est laissé sans encodage pour mettre ne évidence le problème. (Si le navigateur est passé en UTF-8, les deux "Hélé..." sont identiques sur le rendu...... pour les navigateurs récents ! mais je dois être rétro-compatible jusqu'à netscape 4, qui est sensible à ce problème : lorsque tout est déclaré en UTF-8, lui continue de m'écrire "He?le?le?Ga?na?C?a? HélénéGânàÇä" pour le code indiqué plus haut. )
Ce que je cherche, c'est d'une part comprendre ce qu'il se passe entre les deux "HélénéGânàÇä", et d'autre part, trouver une fonction php qui me transforme les caractères issues du système de fichier pour obtenir ceux que j'aurais eu en les tapant au clavier....
Merci pour vos éclairages qui sauveront mes cheveux :zen:
---------- Nouveau message ajouté à 13h09 ---------- Le message précédent a été envoyé à 12h58 ----------
Au pire, si je fait un str_replace qui cherche les caractères accentués copiés/collés de mon système de fichier pour les remplacer par des caractères tapés au clavier, ça marche.
Mais j'aimerais que cela ne soit pas lié à mon système de fichier.
Je rencontre un problème dont je n'arrive pas à comprendre les raisons.
L'environnement dans lequel la question se pose est plus complexe, mais j'ai réussi à simplifier le problème jusqu'à cela :
Si dans une page HTML sans rien de déclaré au niveau du charset, je colle la ligne de texte suivante :
<h1>HéléléGânàÇä HélénéGânàÇä</h1>
ça me donne
HeÌleÌleÌGaÌ‚naÌ€Çä HélénéGânà Çä
Les deux "HéléléGânàÇä" ne sont pas identiques sur la sortie, alors qu'ils semblaient l'être dans le code.
Il faut savoir que le premier est issu d'un copier/coller depuis mon système de fichier, alors que j'ai écris le second au clavier dans l'éditeur de texte.
(le problème se reproduit à l'identique lorsque mon script php récupère le nom du fichier depuis le système de fichier)
Le fichier HTML est enregistré en UTF-8. Le navigateur est laissé sans encodage pour mettre ne évidence le problème. (Si le navigateur est passé en UTF-8, les deux "Hélé..." sont identiques sur le rendu...... pour les navigateurs récents ! mais je dois être rétro-compatible jusqu'à netscape 4, qui est sensible à ce problème : lorsque tout est déclaré en UTF-8, lui continue de m'écrire "He?le?le?Ga?na?C?a? HélénéGânàÇä" pour le code indiqué plus haut. )
Ce que je cherche, c'est d'une part comprendre ce qu'il se passe entre les deux "HélénéGânàÇä", et d'autre part, trouver une fonction php qui me transforme les caractères issues du système de fichier pour obtenir ceux que j'aurais eu en les tapant au clavier....
Merci pour vos éclairages qui sauveront mes cheveux :zen:
---------- Nouveau message ajouté à 13h09 ---------- Le message précédent a été envoyé à 12h58 ----------
Au pire, si je fait un str_replace qui cherche les caractères accentués copiés/collés de mon système de fichier pour les remplacer par des caractères tapés au clavier, ça marche.
Mais j'aimerais que cela ne soit pas lié à mon système de fichier.