IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

conversion iso -> utf


Sujet :

C

  1. #1
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 598
    Points : 7 837
    Points
    7 837
    Par défaut conversion iso -> utf
    Bonjour

    J'aimerai savoir s'il existe des méthodes automatiques pour convertir en C des fichiers iso-8859-15 en utf8 ?

    Le but serait de me faire un programme qui convertisse tous les fichiers de mon site web. Il faudra aussi que je trouve et modifie des code du genre encoding="iso-8859-15" ou "charset=iso-8859-15"
    Ce sera aussi pour moi un exercice...

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    Sans la page de codes, tu ne peux pas faire grand-chose par toi-même.
    Sous unixoïde, renseigne-toi sur iconv.
    Sous Windows, la méthode classique consiste à utiliser les fonctions de conversion entre ASCII étendu et UTF-16 (ou UCS-2 sous Windows NT 4).
    On peut donc utiliser ces fonctions pour :
    • Transformer ISO-8859-15 en UTF-16
    • Convertir UTF-16 en UTF-8 (mais ça, on peut aussi le faire soi-même, c'est un bon exercice).

  3. #3
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 598
    Points : 7 837
    Points
    7 837
    Par défaut
    Merci !

    Il va donc falloir que je cherche une page de code (équivalence entre l'iso et l'utf).
    Par contre, tu parles de utf16. Il vaut mieux le 8 ou le 16 ? Quelle sera la pérénité de l'utf8 ? Se ferra t'il détronner rapidement par le 16 ?
    J'avais tout en iso, mais Linux (mon OS) passant en utf, je commence à avoir des problèmes...

  4. #4
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 729
    Points
    1 729
    Par défaut
    Oui, iconv est la solution http://man.developpez.com/man3/iconv.3.php

    Si c'était du Latin1 (iso-8859-1), tu pourrais convertir les caracteres accentués (tranche 0xa0-0xff) en entité xml/html representant le caractere unicode equivalent.
    Exemple, le 'Ç' est 199. En xml/html on pourrait l'ecrire '& #199;'

    Attention à ne pas confondre le Latin1 et le windows-1252, car dans windows-1252 ya des caracteres dont le code Unicode n'existe pas (la tranche 0x80-0x9F). Par exemple, le symbole € a le code 0x80 et on a pas le droit d'ecrire '& #128;' (le caractere unicode 128 n'existe pas)

    http://en.wikipedia.org/wiki/Latin1
    http://en.wikipedia.org/wiki/Windows-1252

  5. #5
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    Gruik: Ce n'est pas que le code Unicode n'existe pas, mais que le code CP1252 de ces caractères n'est pas égal à leur code Unicode.

    Troumad: UTF-16 est ce qui est le plus utilisé en mémoire (notamment sous Windows et Java), car il est beaucoup plus facile à traiter que UTF-8. Par contre, UTF-8 est préférable pour le stockage (fichiers texte, etc.).

    En mémoire, il me semble que Linux utilise directement de l'UTF-32/UCS-4 (en clair, j'ai lu ici que les wchar_t sous Linux font 4 octets).

  6. #6
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 729
    Points
    1 729
    Par défaut
    Citation Envoyé par Médinoc
    Gruik: Ce n'est pas que le code Unicode n'existe pas, mais que le code CP1252 de ces caractères n'est pas égal à leur code Unicode.
    Je sais, jvoulais dire que le caractere de code unicode 0x80 n'existe pas car la tranche 0x80-0x9f est unused (tout comme en Latin1 puisque le Latin1 est le début de la table Unicode)

  7. #7
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    Ok.
    De toute façon, Troumad n'est pas en Latin-1, mais en Latin-9.

Discussions similaires

  1. Conversion ISO-8859-1 vers UTF-8
    Par wd_newbie dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/03/2015, 12h45
  2. Conversion ISO-8859-1 vers UTF-8 dans Eclipse
    Par Jerhom dans le forum Eclipse
    Réponses: 2
    Dernier message: 03/06/2008, 17h35
  3. Réponses: 1
    Dernier message: 05/12/2006, 16h54
  4. conversion iso-8859-1 vers utf-8
    Par gorgonite dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/08/2006, 12h49
  5. conversion iso-8859-1 => UTF-8 (unicode)
    Par pierru666 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 30/05/2006, 22h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo