Gestion de caractères en UTF-8

Discussion dans 'Administration d'un site Web' créé par ecocentric, 6 Juillet 2005.

Tags:
  1. ecocentric
    ecocentric WRInaute accro
    Inscrit:
    10 Février 2004
    Messages:
    2 653
    J'aime reçus:
    0
    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 ?
     
  2. MarvinLeRouge
    MarvinLeRouge WRInaute impliqué
    Inscrit:
    1 Septembre 2004
    Messages:
    514
    J'aime reçus:
    0
    Changer automatiquement toutes les apostrophes par de simples quotes ?
     
  3. sietjp
    sietjp WRInaute occasionnel
    Inscrit:
    14 Décembre 2003
    Messages:
    476
    J'aime reçus:
    1
    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?
     
  4. mowmow
    mowmow WRInaute impliqué
    Inscrit:
    3 Novembre 2004
    Messages:
    865
    J'aime reçus:
    0
  5. ecocentric
    ecocentric WRInaute accro
    Inscrit:
    10 Février 2004
    Messages:
    2 653
    J'aime reçus:
    0
    C'est à cela que j'ai pensé au départ, avec un strtr, mais ça ne marche pas.

    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.
     
  6. ecocentric
    ecocentric WRInaute accro
    Inscrit:
    10 Février 2004
    Messages:
    2 653
    J'aime reçus:
    0
    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
     
  7. shrom
    shrom WRInaute impliqué
    Inscrit:
    5 Juillet 2004
    Messages:
    781
    J'aime reçus:
    0
    Une solution serait de passer par les entités HTML.
     
  8. ecocentric
    ecocentric WRInaute accro
    Inscrit:
    10 Février 2004
    Messages:
    2 653
    J'aime reçus:
    0
    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.
     
  9. ecocentric
    ecocentric WRInaute accro
    Inscrit:
    10 Février 2004
    Messages:
    2 653
    J'aime reçus:
    0
    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 ' :oops: .
    Vous en conviendrez, c'est vraiment très très crade (vive les phrases interrogatives :lol: ), donc je cherche autre chose...
     
  10. shrom
    shrom WRInaute impliqué
    Inscrit:
    5 Juillet 2004
    Messages:
    781
    J'aime reçus:
    0
    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.
     
  11. ecocentric
    ecocentric WRInaute accro
    Inscrit:
    10 Février 2004
    Messages:
    2 653
    J'aime reçus:
    0
    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.
     
  12. ecocentric
    ecocentric WRInaute accro
    Inscrit:
    10 Février 2004
    Messages:
    2 653
    J'aime reçus:
    0
    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) :?: .
     
  13. sgaze
    sgaze WRInaute occasionnel
    Inscrit:
    2 Février 2004
    Messages:
    452
    J'aime reçus:
    0
    Pour info, j'ai réussi à me sortir du même problème ainsi :
    Code:
    $title = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $item['title']);
     
  14. ecocentric
    ecocentric WRInaute accro
    Inscrit:
    10 Février 2004
    Messages:
    2 653
    J'aime reçus:
    0
    Ah, ok, merci pour l'info, je vais regarder ça !
     
  15. papayou
    papayou WRInaute discret
    Inscrit:
    21 Avril 2004
    Messages:
    247
    J'aime reçus:
    0
    Bonjour,

    Y a-t-il une solution quand la fonction Iconv n'est pas disponible ?

    @+
     
  16. TOMHTML
    TOMHTML WRInaute accro
    Inscrit:
    25 Août 2004
    Messages:
    2 502
    J'aime reçus:
    0
    Oui, il faut utiliser la fonction PHP htmlentities() dans la page qui affiche le resultat du flux. A mettre uniquement autour des données à afficher, pas le code source des balises !
     
  17. papayou
    papayou WRInaute discret
    Inscrit:
    21 Avril 2004
    Messages:
    247
    J'aime reçus:
    0
    Excellent !

    Merci beaucoup, c'est quand même mieux avec des accents. Nos confrères anglo-saxons ont plus de chance ;)

    @+
     
  18. oberon
    oberon WRInaute discret
    Inscrit:
    26 Septembre 2003
    Messages:
    147
    J'aime reçus:
    0
    Autant je peux comprendre l'intérêt de convertir de l'ISO-8859-1 vers de l'UTF8, autant l'inverse n'a pour moi aucun sens. Tu devrais bosser directement en UTF8, là tu te compliques la vie pour rien.
     
  19. TOMHTML
    TOMHTML WRInaute accro
    Inscrit:
    25 Août 2004
    Messages:
    2 502
    J'aime reçus:
    0
    ça peut très bien être plus compliqué de transformer tout le site en UTF-8 que de rajouter une seule fois cette fonction ;-)
     
  20. oberon
    oberon WRInaute discret
    Inscrit:
    26 Septembre 2003
    Messages:
    147
    J'aime reçus:
    0
    Code:
    find . -type f | grep  "\.htm" | awk '{print "recode ISO8859-1..UTF-8 \""$1"\""}' | sh
    find . -type f | grep  "\.php" | awk '{print "recode ISO8859-1..UTF-8 \""$1"\""}' | sh
    find . -type f | grep  "\.css"  | awk '{print "recode ISO8859-1..UTF-8 \""$1"\""}' | sh
    find . -type f | grep  "\.js"  | awk '{print "recode ISO8859-1..UTF-8 \""$1"\""}' | sh
    Je précise que le code ci-dessus n'est pas de moi, je savais que ça se faisait avec recode (librairie iconv) et j'ai fait une recherche google qui m'a donné le script tout fait.

    Ensuite il y a la base de données si tu rentres dans un cas de site très dynamique, un tuto ici:
    http://blog.neovov.com/index.php?2007/0 ... e-en-utf-8
     
  21. papayou
    papayou WRInaute discret
    Inscrit:
    21 Avril 2004
    Messages:
    247
    J'aime reçus:
    0
    Merci pour l'info. Je vois que tu es un pro du Grep ;-)
     
Chargement...
Similar Threads - Gestion caractères UTF Forum Date
Logiciel de gestion des réseaux sociaux Autres réseaux sociaux 29 Mars 2022
Gestion des produits supprimés en e-commerce e-commerce 24 Février 2022
Gestion NDD avec délégation des aspects techniques Administration d'un site Web 7 Janvier 2022
Suggestions de mots clés sur un liste de 15 000 mots Rédaction web et référencement 7 Décembre 2021
Gestion sous domaines et domaines dans Analytics Google Analytics 10 Septembre 2021
Gestion Canonical et Hreflang sur une home page multilangue Référencement international (langues, pays) 11 Août 2021
Gestion de la profondeur par Google Référencement Google 7 Juillet 2021
Gestion contenu JSON-LD versus contenu HTML. Développement d'un site Web ou d'une appli mobile 24 Mai 2021
Avis analyses SEO et suggestions Demandes d'avis et de conseils sur vos sites 29 Avril 2021
Récapitulatif Gestion du consentement pour Google Analytics Google Analytics 30 Mars 2021
Gestionnaire de vente Facebook : le compte marchand Facebook 26 Mars 2021
Centraliser la gestion des liens d'affiliation et publicités Monétisation d'un site web 26 Janvier 2021
Gestion sitemap.xml sur un site multilingue Crawl et indexation Google, sitemaps 5 Octobre 2020
Google Chrome et gestion des cookies Google : l'entreprise, les sites web, les services 4 Août 2020
Application Cordova/Android et gestion des cookies Développement d'un site Web ou d'une appli mobile 31 Juillet 2020
Memcached/PHP gestion de sessions Développement d'un site Web ou d'une appli mobile 22 Juillet 2020
PWA => GTM & gestion cookies ? Développement d'un site Web ou d'une appli mobile 20 Janvier 2020
Outil de gestion des réseaux sociaux Facebook 2 Janvier 2020
Gestion de cookies problème directives CNIL. Administration d'un site Web 15 Novembre 2019
WordPress Gestion des catégories Référencement Google 27 Octobre 2019