Problème de parsing php
Fermé
jdsaith
Messages postés
7
Date d'inscription
mercredi 13 août 2008
Statut
Membre
Dernière intervention
2 septembre 2009
-
1 sept. 2009 à 21:22
jdsaith Messages postés 7 Date d'inscription mercredi 13 août 2008 Statut Membre Dernière intervention 2 septembre 2009 - 2 sept. 2009 à 23:39
jdsaith Messages postés 7 Date d'inscription mercredi 13 août 2008 Statut Membre Dernière intervention 2 septembre 2009 - 2 sept. 2009 à 23:39
5 réponses
Bonjour
Il ne le fait pas parce que tu as saisi ton script en ANSI alors que ton $texte est en UTF8 (ou l'inverse).
Donc un 'é' dans $searchstrings n'est pas le même qu'un 'é' dans $texte.
As-tu une idée de l'encodage utilisé par ton éditeur de script, et de celui de $texte ?
Il ne le fait pas parce que tu as saisi ton script en ANSI alors que ton $texte est en UTF8 (ou l'inverse).
Donc un 'é' dans $searchstrings n'est pas le même qu'un 'é' dans $texte.
As-tu une idée de l'encodage utilisé par ton éditeur de script, et de celui de $texte ?
jdsaith
Messages postés
7
Date d'inscription
mercredi 13 août 2008
Statut
Membre
Dernière intervention
2 septembre 2009
1
1 sept. 2009 à 23:02
1 sept. 2009 à 23:02
bonjour,
À part l'interclassement de ma table (latin_swedish_ci), je ne vois pas comment vérifier...
*trois minutes plus tard* vive PHPinfo!
la base SQLite est encodée en UTF-8, toujours ça de moins...
maintenant, la page html est donnée en UTF-8 dans les META, mais ça ne joue en rien sur l'Encodage avant qu'elle se rende, si je ne m'abuse...
et celle-là, je l'ai pas trouvée sur PHPinfo.
donc, rendu là, que faire??
À part l'interclassement de ma table (latin_swedish_ci), je ne vois pas comment vérifier...
*trois minutes plus tard* vive PHPinfo!
la base SQLite est encodée en UTF-8, toujours ça de moins...
maintenant, la page html est donnée en UTF-8 dans les META, mais ça ne joue en rien sur l'Encodage avant qu'elle se rende, si je ne m'abuse...
et celle-là, je l'ai pas trouvée sur PHPinfo.
donc, rendu là, que faire??
jdsaith
Messages postés
7
Date d'inscription
mercredi 13 août 2008
Statut
Membre
Dernière intervention
2 septembre 2009
1
2 sept. 2009 à 00:58
2 sept. 2009 à 00:58
bon bon bon,
Je viens de discuter ave mon hébergeur, qui m'a confirmé que tout son serveur fonctionnait en UTF8, donc si il y a un problème, c'est que le UTF8 ne reconnaît pas les "é", ce dont je doute, vu que mon hébergeur français n'aurait pas choisi un language qui ne compte pas les accents...
c'est donc dans mon code en quelque part le problème, mais je ne le vois vraiment pas. peut être copier-coller un des carrés formés par mon code, qui sait?
Je viens de discuter ave mon hébergeur, qui m'a confirmé que tout son serveur fonctionnait en UTF8, donc si il y a un problème, c'est que le UTF8 ne reconnaît pas les "é", ce dont je doute, vu que mon hébergeur français n'aurait pas choisi un language qui ne compte pas les accents...
c'est donc dans mon code en quelque part le problème, mais je ne le vois vraiment pas. peut être copier-coller un des carrés formés par mon code, qui sait?
Le problème, c'est l'éditeur avec lequel tu travailles . Si lui n'est pas en UFT8, comme je l'expliquais dans le message 1, le 'é' qui apparaît dans $searchstrings n'est pas codé en UTF8. Quand tu le recherches avec une chaîne qui contient un 'é' en UTF8, il ne peut pas le trouver, ce ne sont pas les mêmes codes.
Vérifie l'encodage de ton éditeur de texte.
Remarque : l'UTF8 (l'unicode en fait) connaît les 'é' mais aussi l'arabe, le chinois et un tas d'autres caractères dont tu ne soupçonnes même pas l'existence. C'est l'un des encodages les plus riches actuellement, c'est pour ça que tout le monde s'y met.
Pour passer complètement à l'UTF8, il faudra que tu choisisses un interclassement utf8 (utf8_general_ci) pour tes tables mysql, et que tu ajoutes une requête SET NAMES UTF8 après la connexion à ta base.
Il y a aussi un paramètre à ajouter à la fonction htmlentities (si tu l'utilises) pour lui dire que tu travailles en utf8.
J'ai fait tout ça récemment (1 mois environ) et je n'ai pas (encore) eu de mauvaises surprises.
Vérifie l'encodage de ton éditeur de texte.
Remarque : l'UTF8 (l'unicode en fait) connaît les 'é' mais aussi l'arabe, le chinois et un tas d'autres caractères dont tu ne soupçonnes même pas l'existence. C'est l'un des encodages les plus riches actuellement, c'est pour ça que tout le monde s'y met.
Pour passer complètement à l'UTF8, il faudra que tu choisisses un interclassement utf8 (utf8_general_ci) pour tes tables mysql, et que tu ajoutes une requête SET NAMES UTF8 après la connexion à ta base.
Il y a aussi un paramètre à ajouter à la fonction htmlentities (si tu l'utilises) pour lui dire que tu travailles en utf8.
J'ai fait tout ça récemment (1 mois environ) et je n'ai pas (encore) eu de mauvaises surprises.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
jdsaith
Messages postés
7
Date d'inscription
mercredi 13 août 2008
Statut
Membre
Dernière intervention
2 septembre 2009
1
2 sept. 2009 à 23:39
2 sept. 2009 à 23:39
J'ai trouvé une solution fonctionnant sans problèmes!
les pages étant en UTF8, il lit sans problèmes les "é"...
donc, en supprimant mes remplacements en "é" , il les affichent sans problème!
donc, probablement que l'encodage regimbe un peu avec ce type de codage...
reste seulement ça a voir.
les pages étant en UTF8, il lit sans problèmes les "é"...
donc, en supprimant mes remplacements en "é" , il les affichent sans problème!
donc, probablement que l'encodage regimbe un peu avec ce type de codage...
reste seulement ça a voir.