[résolu] SimpleXML et encodage caractères
13 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
-

phpmikedu83 - WRInaute accro

- Messages: 1281
- Inscription: Sam Aoû 06, 2005 7:34
[résolu] SimpleXML et encodage caractères
Salut WRI,
J'ai un soucis pour parser des fichiers XML dont je ne maitrise pas la source (propreté de l'encodage des caractères)...
S'ils sont bien formés, pas de soucis, mais s'il y a des caractères non UTF8 (ou ISO selon la déclaration), ça plante (Normal)...
Comment, d'après vous, je peux détecter avant de parser ces caractères foireux et les remplacer par, au pire, un blanc...
Merci à toutes les brillantes idées qui vont fuser...
J'ai un soucis pour parser des fichiers XML dont je ne maitrise pas la source (propreté de l'encodage des caractères)...
S'ils sont bien formés, pas de soucis, mais s'il y a des caractères non UTF8 (ou ISO selon la déclaration), ça plante (Normal)...
Comment, d'après vous, je peux détecter avant de parser ces caractères foireux et les remplacer par, au pire, un blanc...
Merci à toutes les brillantes idées qui vont fuser...
Dernière édition par phpmikedu83 le Dim Aoû 19, 2007 23:52, édité 1 fois.
-

phpmikedu83 - WRInaute accro

- Messages: 1281
- Inscription: Sam Aoû 06, 2005 7:34
julienr a écrit:bienvenue à toi dans le club des 1000, alors c comment là haut
Merci, roff, ça doit pas être mal une mongolfière aussi
Sinon, pour revenir à mon problème, c'est que j'ai des caractères comme ça, par exemple:
- Code: Tout sélectionner
�
Et que si j'applique un utf8_encode, je vais avoir les accents qui apparaissent comme ça:
- Code: Tout sélectionner
é
C'est pas le but non plus...
En fait, je voudrais juste pouvoir virer les caractères pourris...
- Code: Tout sélectionner
str_replace( '?', ' ', $xml );
phpmikedu83 a écrit:Et que si j'applique un utf8_encode, je vais avoir les accents qui apparaissent comme ça:
oui si tu cherches à afficher de l'UTF8 dans une page ISO
pour moi utf8_encode doit te permettre d'uniformiser tes caractères pour le simpleXml. Ensuite tout ce qui est dans l'objet XML doit passer dans un utf8_decode
ça fait la même chose sur le Packrefplex, je vais donc essayer cette technique de STR replace en attendant ...
-

phpmikedu83 - WRInaute accro

- Messages: 1281
- Inscription: Sam Aoû 06, 2005 7:34
julienr a écrit:
- Code: Tout sélectionner
str_replace( '?', ' ', $xml );
phpmikedu83 a écrit:Et que si j'applique un utf8_encode, je vais avoir les accents qui apparaissent comme ça:
oui si tu cherches à afficher de l'UTF8 dans une page ISO
pour moi utf8_encode doit te permettre d'uniformiser tes caractères pour le simpleXml. Ensuite tout ce qui est dans l'objet XML doit passer dans un utf8_decode
au temps pour moi, mon document n'avait pas le bon charset...
pour autant, s'il existe un moyen de détecter ces caractères bizzaroïdes dans une chaîne, ça m'intéresse
- bozoleclown
- WRInaute passionné

- Messages: 893
- Inscription: Jeu Nov 24, 2005 19:08
un début de solution ?
=> http://www.tux-planet.fr/blog/?2007/04/ ... age-en-php
=> http://www.tux-planet.fr/blog/?2007/04/ ... age-en-php
Je viens de trouver ça http://64.233.183.104/search?q=cache:dN ... d=11&gl=fr
Mais pas encore de solution
Mais pas encore de solution
-

phpmikedu83 - WRInaute accro

- Messages: 1281
- Inscription: Sam Aoû 06, 2005 7:34
bozoleclown a écrit:un début de solution ?
=> http://www.tux-planet.fr/blog/?2007/04/ ... age-en-php
Non, car si je fait un htmlentities, ça rend ma string XML inexploitable...
Quand au mb_detect_encoding, il n'est d'aucune utilité, car le document contient des erreurs de caractères...
Ce que j'aimerais, et c'est pas plus mal, c'est détecter avant d'instancier la class que le document va poser problème et traiter l'erreur en ne parsant pas, par exemple...
Cher voisin varois qui bosse aussi le dimanche
Je pense que mon lien plus haut signifie qu'il n'est en fait pas possible de modifier les ? car php analyse cela par une erreur et remplace automatiquement le caractère qui pose problème par ?
Je pense que mon lien plus haut signifie qu'il n'est en fait pas possible de modifier les ? car php analyse cela par une erreur et remplace automatiquement le caractère qui pose problème par ?
-

phpmikedu83 - WRInaute accro

- Messages: 1281
- Inscription: Sam Aoû 06, 2005 7:34
cloacking a écrit:Cher voisin varois qui bosse aussi le dimanche
Je pense que mon lien plus haut signifie qu'il n'est en fait pas possible de modifier les ? car php analyse cela par une erreur et remplace automatiquement le caractère qui pose problème par ?
Ok ok, dommage... mais là ça marche comme ça, tout en gardant les caractères bizzaroïdes qui sont évidemment reproduits par la suite... j'aurais préférer traiter ça comme une erreur avec mon script, mais bon!
- bozoleclown
- WRInaute passionné

- Messages: 893
- Inscription: Jeu Nov 24, 2005 19:08
cloacking a écrit: car php analyse cela par une erreur et remplace automatiquement le caractère qui pose problème par ?
php n'analyse pas les chaînes de caractères et ne remplacent pas les caractères mal encodés par des "?"
c'est le navigateur qui n'arrive pas à décoder le caractère et qui met un "?" ou au truc bizarrerie à la place.
php ne fait qu'envoyer des chaînes de caractères (suite d'octets) au navigateur qui lui interprète ces suites d'octets en fonction du charset déclaré.
-

phpmikedu83 - WRInaute accro

- Messages: 1281
- Inscription: Sam Aoû 06, 2005 7:34
A force d'acharnement, j'ai trouvé comment identifier un mauvais document XML (avec des caractères qui ne correspondent pas charset)
si:
renvoi true, c'est qu'il y a des caractères foireux dans le fichier XML
ça permet d'intercepter l'erreur et de la traiter... ce qui me ravie
si:
- Code: Tout sélectionner
ereg( chr(195) , utf8_decode($flux) );
renvoi true, c'est qu'il y a des caractères foireux dans le fichier XML
ça permet d'intercepter l'erreur et de la traiter... ce qui me ravie
13 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Google Sitemap Generator version 1.3
- Robots.txt : Yahoo supporte les options avancées
- Conseils d'optimisation de la balise TITLE (titre d'une page HTML)
- Ecrire un sitemap pour Google News
- Référencement : TrustRank et sites dignes de confiance
- Exemple d'architecture d'un site multilingue pour le référencement
- Nombre moyen de mots par requête : statistiques AOL Août 2006
- Le début du full crawl
- Nouveautés dans l'API Google Analytics (Septembre 2009)
- L'URL Rewriting expliqué aux débutants
- Encodage de caractères
- Jom comment encodage des caractères
- Encodage des caractères : je suis paumé...
- Problème caractères bizzares dans Google (encodage...?)
- Gmail - Imap : Problème encodage caractères spéciaux
- encodage caractères spéciaux dans balises méta
- Influence des accents: encodage natif ou caractères spéciaux
- [API Google] Encodage des caractères de la cat. DMOZ
- [Résolu] Encodage en Unicode
- encodage des caractères : ça marche, ça marche pas
- [Résolu] Afficher des caractères slovaques...
- [Résolu] Caractéres indesirable qui suivent ma redirection.
- [résolu] Caractères spéciaux dans flux RSS
- [résolu] caractères accentués dans les métas
- [Résolu] Accent, caractères spéciaux dans l'url
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités



le forum