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

Composants VCL Delphi Discussion :

fichiers texte UTF-8


Sujet :

Composants VCL Delphi

  1. #1
    Membre éprouvé

    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2006
    Messages
    621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2006
    Messages : 621
    Points : 1 264
    Points
    1 264
    Par défaut fichiers texte UTF-8
    Bonjour a tous,
    je cherche a generer un fichier texte en format UTF-8 soit via l'ancien systeme (assignfile, rewrite, writeln et closefile), soit par une TStringList et Savetofile.
    Quelqu'un sait-il comment parametrer ca pour que l'enregistrement se fasse en format UTF-8 et pas en ANSI ?

    Merci.
    "L'incohérence de ceux qui dirigent et l'incompétence de ceux qui critiquent sont un vibrant hommage à ceux qui exécutent."
    Général George S. PATTON. Messine 1943.

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Si tu utilises une version antérieure à D2009 j'ai peur que tu ne puisses pas t'en sortir autrement qu'en faisant tout "en binaire" avec des Streams et UTF8String.

    Après à partir de D2009 les String sont unicodes (UTF-16), on peut néanmoins spécifier l'encodage que l'on veut dans certaines classes grâce à la nouvelle classe TEncodage.
    La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème

    Pas de sollicitations techniques par MP -

  3. #3
    Membre éprouvé

    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2006
    Messages
    621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2006
    Messages : 621
    Points : 1 264
    Points
    1 264
    Par défaut
    Bonjour,
    en fait je suis passe par la solution Tstringlist. J'ai deja mis des utf8string dans mes add(), donc il me resterait a bricoler les 3 octets de tete du fichier pour mettre le code correspondant a UTF8 ou c'est plus complique que ca ?

    Merci.
    "L'incohérence de ceux qui dirigent et l'incompétence de ceux qui critiquent sont un vibrant hommage à ceux qui exécutent."
    Général George S. PATTON. Messine 1943.

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    Tu n'as pas répondu à ma question sur quelle était ta version de Delphi.

    En tout les cas le passage par le TStringList est casse-gueule quelque soit. Soit tu es avant D2009 est donc ton UTF8String est convertie implicitement en AnsiString soit tu es en D2009 et tu es d'office en WideString (UTF-16) ce qui est différent de UTF-8.
    La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème

    Pas de sollicitations techniques par MP -

  5. #5
    Membre éprouvé

    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2006
    Messages
    621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2006
    Messages : 621
    Points : 1 264
    Points
    1 264
    Par défaut
    oops desole. Je suis en D 2007 pro
    "L'incohérence de ceux qui dirigent et l'incompétence de ceux qui critiquent sont un vibrant hommage à ceux qui exécutent."
    Général George S. PATTON. Messine 1943.

  6. #6
    Expert confirmé

    Profil pro
    Leader Technique
    Inscrit en
    Juin 2005
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Leader Technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 756
    Points : 4 170
    Points
    4 170
    Par défaut
    Citation Envoyé par Aka Guymelef Voir le message
    En tout les cas le passage par le TStringList est casse-gueule quelque soit. Soit tu es avant D2009 est donc ton UTF8String est convertie implicitement en AnsiString soit tu es en D2009 et tu es d'office en WideString (UTF-16) ce qui est différent de UTF-8.
    A mon avis, tu surestimes le compilateur avant D2009.
    Le type UTF8String est en réalité un alias du type string, définis dans l'unité system par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      UTF8String = type string;
    Il ne s'agit donc pas d'un type natif reconnu par le compilateur. Aucune chance que ce dernier fasse une convertion implicite.

    Pour convertir une chaîne Ansi en UTF-8, il faut passer par AnsiToUtf8.

    Ensuite, le TStringList devrait prendre la chaîne tel quel et l'écrire sans se poser de question.

    Citation Envoyé par arkhamon
    donc il me resterait a bricoler les 3 octets de tete du fichier pour mettre le code correspondant a UTF8 ou c'est plus complique que ca ?
    Je dirais oui. De toute façon fait le test tu seras vite fixé.
    Mais attention, si un jour tu passes sous D2009, ça ne marchera sûrement plus.

  7. #7
    Membre éprouvé

    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2006
    Messages
    621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2006
    Messages : 621
    Points : 1 264
    Points
    1 264
    Par défaut
    FORMIDABLE !!!!!
    Ca marche avec AnsiToUtf8.

    Meci beaucoup pour le coup de main !
    "L'incohérence de ceux qui dirigent et l'incompétence de ceux qui critiquent sont un vibrant hommage à ceux qui exécutent."
    Général George S. PATTON. Messine 1943.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ecriture fichier texte avec format UTF-8
    Par julianauribe dans le forum MATLAB
    Réponses: 0
    Dernier message: 21/04/2009, 10h10
  2. [HTML] des fichiers texte en UTF-8
    Par MorganStern dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 15/06/2008, 18h58
  3. [VBA-E] fichiers texte en UTF-8
    Par SpaceFrog dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/11/2006, 21h16
  4. Export d'une base MySQL vers un fichier texte UTF-8
    Par zian974 dans le forum Outils
    Réponses: 2
    Dernier message: 28/08/2006, 20h36
  5. Lecture d'un fichier texte en UTF-8
    Par EL0807 dans le forum Access
    Réponses: 2
    Dernier message: 07/08/2006, 22h54

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