Gestion de caractères en UTF-8
21 messages • Page 1 sur 2 • 1, 2
Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics
-

ecocentric - WRInaute accro

- Messages: 3577
- Inscription: Mar Fév 10, 2004 16:40
Gestion de caractères en UTF-8
Je dispose d'un script de création de flux RSS en ISO latin. Il gère assez mal les encodages UTF-8, ce qui se traduit par des problèmes de caractères accentués. J'ai donc développé une routine de détection du charset, ce qui me permet de faire un url_decode quand il faut. Le problèmes des caractères accentués est alors réglé. Le problème restant concerne les apostrophe ' arrondies, qui apparaissent sous la forme d'un "?". Quelqu'un voit-il comment régler ce dernier problème ?
-

MarvinLeRouge - WRInaute impliqué

- Messages: 451
- Inscription: Mer Sep 01, 2004 20:10
Changer automatiquement toutes les apostrophes par de simples quotes ?
-

ecocentric - WRInaute accro

- Messages: 3577
- Inscription: Mar Fév 10, 2004 16:40
MarvinLeRouge a écrit:Changer automatiquement toutes les apostrophes par de simples quotes ?
C'est à cela que j'ai pensé au départ, avec un strtr, mais ça ne marche pas.
mowmow a écrit:http://fr.php.net/utf8-decode ?
sietjp a écrit:Je ne comprends pas bien le système, est ce toi qui génère le RSS ou veux tu simplement afficher un RSS iso-latin sur ton site en utf-8?
Je fais le tout, en fait.
J'affiche du RSS sur un site ISO Latin. Mais je dispose aussi d'un système qui analyse un site de news (qui peut être en UTF8) sans RSS et qui crée le RSS (en ISO Latin). C'est là que j'ai un problème. Je détecte bien le charset du site, je fais un UTF8-decode, les caractères accentués passent bien mais pas les apostrophes.
-

ecocentric - WRInaute accro

- Messages: 3577
- Inscription: Mar Fév 10, 2004 16:40
sietjp a écrit:Je ne comprends pas bien le système, est ce toi qui génère le RSS ou veux tu simplement afficher un RSS iso-latin sur ton site en utf-8?
J'ai le même problème lorsque je lis un flux UTF8 et que je l'affiche en ISO-Latin. Voici un exemple où ce problème d'apostrophe se pose : http://www.retronimo.com/annuaire/autom ... hp?id=0199
-

ecocentric - WRInaute accro

- Messages: 3577
- Inscription: Mar Fév 10, 2004 16:40
shrom a écrit:Une solution serait de passer par les entités HTML.
Sans doute mais je n'ai pas le contrôle de la source. La source peut être codée avec les pieds, avec des encodages divers.
-

ecocentric - WRInaute accro

- Messages: 3577
- Inscription: Mar Fév 10, 2004 16:40
MarvinLeRouge a écrit:Changer automatiquement toutes les apostrophes par de simples quotes ?
En fait, j'ai oublié de dire, il y a truc crade qui marche. Vu qu'il me met des ? à la place des ' arrondis (et, dans mon cas, apparemment, à la place de rien d'autre), je peux remplacer les ? par des '
Vous en conviendrez, c'est vraiment très très crade (vive les phrases interrogatives
ecocentric a écrit:shrom a écrit:Une solution serait de passer par les entités HTML.
Sans doute mais je n'ai pas le contrôle de la source. La source peut être codée avec les pieds, avec des encodages divers.
Tu veux dire que dans un flux RSS, tu peux avoir un mélange ISO-8859-1 et UTF-8. Ces gens là ne méritent même pas qu'on utilise leur flux.
Sinon, c'est pas compliqué, si rien n'est indiqué, le flux DOIT être en UTF-8, sinon c'est l'encodage spécifié.
Je me sers de flux de type RSS sur la plupart de mes sites, quand un site ne respecte pas la norme, le flux passe à la poubelle et c'est tout. Il y a assez de flux divers et variés pour ne pas à avoir à s'embeter avec ceux qui ne veulent pas faire l'effort de faire un flux RSS correct.
-

ecocentric - WRInaute accro

- Messages: 3577
- Inscription: Mar Fév 10, 2004 16:40
shrom a écrit:ecocentric a écrit:shrom a écrit:Une solution serait de passer par les entités HTML.
Sans doute mais je n'ai pas le contrôle de la source. La source peut être codée avec les pieds, avec des encodages divers.
Tu veux dire que dans un flux RSS, tu peux avoir un mélange ISO-8859-1 et UTF-8. Ces gens là ne méritent même pas qu'on utilise leur flux.
Sinon, c'est pas compliqué, si rien n'est indiqué, le flux DOIT être en UTF-8, sinon c'est l'encodage spécifié.
Je me sers de flux de type RSS sur la plupart de mes sites, quand un site ne respecte pas la norme, le flux passe à la poubelle et c'est tout. Il y a assez de flux divers et variés pour ne pas à avoir à s'embeter avec ceux qui ne veulent pas faire l'effort de faire un flux RSS correct.
Ce que je veux dire, c'est que les flux RSS sont souvent mal formés. Ca, je sais gérer relativement bien (j'ai 2 lecteurs RSS qui se partagent la tâche, le second sachant rattraper certaines erreurs du premier...). Vu que je gère un annuaire - lecteur RSS, il faut bien que je me débrouille. L'outil de syndication que je suis en train de terminer permet justement de sortir des flux "nettoyés" sur base d'entrées potentiellement mal codées.
Ce que je gère moins bien, c'est l'encodage. Notamment, la conversion d'UTF8 vers ISO Latin pose problème. Le problème vient de l'apostrophe arrondie, que la fonction utf8-decode change en un ?. Je pense que le problème vient du fait que ce caractère n'a pas d'équivalent en ISO, donc la fonction ne sait pas le convertir. Mais je ne suis pas sûr et me demande comment gérer ce problème proprement.
-

ecocentric - WRInaute accro

- Messages: 3577
- Inscription: Mar Fév 10, 2004 16:40
Bon, en fait, c'est le caractère unicode 8217 qui pose problème. Il tient sur 3 octets et n'est pas représentable tel quel en ISO Latin. Donc, utf8_decode le remplace par un ? puisqu'il n'y a pas d'équivalent en ISO latin.
Pour s'en sortir, je n'ai rien trouvé de mieux pour le moment qu'analyser la chaîne avant conversion par utf8_decode, de manière à identifier les blocs de 3 caractères correspondant au caractère Unicode 8217.
L'idéal pour la suite serait peut-être de baculer tout le site en UTF8 et de pouvoir travailler en d'ISO vers UTF et d'UTF vers UTF plutôt que ISO vers ISO et UTF vers ISO (ce qui pose parfois problème)
.
Pour s'en sortir, je n'ai rien trouvé de mieux pour le moment qu'analyser la chaîne avant conversion par utf8_decode, de manière à identifier les blocs de 3 caractères correspondant au caractère Unicode 8217.
L'idéal pour la suite serait peut-être de baculer tout le site en UTF8 et de pouvoir travailler en d'ISO vers UTF et d'UTF vers UTF plutôt que ISO vers ISO et UTF vers ISO (ce qui pose parfois problème)
Pour info, j'ai réussi à me sortir du même problème ainsi :
- Code: Tout sélectionner
$title = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $item['title']);
-

ecocentric - WRInaute accro

- Messages: 3577
- Inscription: Mar Fév 10, 2004 16:40
sgaze a écrit:Pour info, j'ai réussi à me sortir du même problème ainsi :
- Code: Tout sélectionner
$title = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $item['title']);
Ah, ok, merci pour l'info, je vais regarder ça !
ecocentric a écrit:sgaze a écrit:Pour info, j'ai réussi à me sortir du même problème ainsi :
- Code: Tout sélectionner
$title = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $item['title']);
Ah, ok, merci pour l'info, je vais regarder ça !
Bonjour,
Y a-t-il une solution quand la fonction Iconv n'est pas disponible ?
@+
21 messages • Page 1 sur 2 • 1, 2
Formation recommandée sur ce thème :
Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par Julien Coquet, expert certifié officiellement par Google Analytics.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- La calculatrice de Google
- Tiret ou underscore ? Enfin la réponse !
- Google indexe le Flash
- Google News : trucs et astuces
- Google traque les colis UPS ou FedEx
- Google Sitemap Generator version 1.3
- Google affiche des liens vers des plans de villes
- Robots.txt : Yahoo supporte les options avancées
- Google tente d'expliquer le Google Bombing 'Failure'
- Gestion des langues et des sessions en PHP / MySQL
- get_meta_tags et UTF-8
- Problème UTF-8
- Google et UTF-8 ???
- file_get_contents + UTF-8 + CR/LF
- Encodage UTF-8
- Magpierss et UTF-8
- URL en UTF 8
- adsense pour rss + utf-8
- PHP-MySQL et UTF-8
- [Résolu] UTF-8 et données POST / GET
- UTF 8 et caractéres accentués doublé
- encodage html et utf 8
- UTF-8 ou ISO 8859-1 ?
- UTF-8 : Apostrophe invivible?...
- utf-8 ou ISO-8850-1 ???
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité





le forum