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

Langage Delphi Discussion :

Enregistrer un mémo en UTF-8 sur Delphi 2007


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 69
    Points : 42
    Points
    42
    Par défaut Enregistrer un mémo en UTF-8 sur Delphi 2007
    Bonjour,

    j'utilise Delphi 2007 et je dois enregistrer un memo dans un fichier UTF-8.

    J'ai pu ajouter les 3 caractères au début du fichier pour signaler que c'est un UTF-8 mais tous mes caractères spéciaux (é, à è, ü,...) s'affiche bizarrement.

    Avez-vous une idée?

    Salutations et merci d'avance!

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 586
    Points : 25 262
    Points
    25 262
    Par défaut
    Qu'appele tu bizarrement ?
    Les 3 Caractères, c'est le BOM - Byte Order Mark
    EF BB BF pour l'UTF8
    ensuite é, à è, ü... s'affiche é, Ã*, è...

    Ne pas confondre UTF8 et UTF-16 (charset de WideString)

    Dans les Delphi récents, à partir de 2009, tu peux définir sans le SaveToFile du TStrings, le charset
    Avant, tu peux écrire dans un TMemoryStream, que tu encode via UTF8Encode vers un TFileStream

  3. #3
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 69
    Points : 42
    Points
    42
    Par défaut
    Oui exactement.. Tous les caractères avec un accents ne sont pas afficher.

    Je veux vraiment de l'UTF-8 car c'est pour un exportation des données pour l'intégrer dans une application Web.

    J'ai chercher et trouvé pour Delphi 2009 mais rien pour Delphi 2007.
    Je vais essayer.

    merci

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 586
    Points : 25 262
    Points
    25 262
    Par défaut
    En même temps, une application Web peut très bien chargé un fichier latin-1 ou windows-1252 !

    mais tous mes caractères spéciaux (é, à è, ü,...) s'affiche bizarrement.
    Tous les caractères avec un accents ne sont pas afficher.
    Bizarre ou pas ? Affiché ou pas ? Affiché dans ?

    Notepad de WinXP, gère l'ANSI (window-1252), UTF-8 et Unicode, tu peux vérifier avec le contenu de ton fichier
    UltraEdit lui te permettra de vérifier le BOM et le contenu Hexadécimal réel !

    Quel est ton code d'enregistrement actuel ?

  5. #5
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 69
    Points : 42
    Points
    42
    Par défaut
    En même temps, une application Web peut très bien chargé un fichier latin-1 ou windows-1252 !
    On m'impose le UTF-8
    Bizarre ou pas ? Affiché ou pas ? Affiché dans ?
    Affiche comme un caractère spécial. Style '▪'
    Je vais regarder avec UltraEdit pour être sûr du fichier texte!
    Quel est ton code d'enregistrement actuel ?
    Le code Delphi?
    Pas encore fait, je vais le faire dans un petit moment!
    Je te tiendrai au courant!
    Merci

  6. #6
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 69
    Points : 42
    Points
    42
    Par défaut
    Tout est OK!

    Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Var
      FS : TFileStream;
      FichierAnsiString :AnsiString;
     
    begin
    ...
      FS := TFileStream.Create(NomFichier, fmCreate);
      FichierAnsiString:= Utf8Encode(Memo1.Text);
      FS.Write(FichierAnsiString[1],Length(FichierAnsiString));
      Fs.Free;
    ...
    end

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/03/2009, 10h31
  2. Renseignements sur Delphi 2007 (Contenu, Licence)
    Par juliano77 dans le forum Débuter
    Réponses: 5
    Dernier message: 16/11/2007, 00h14
  3. installation de composant sur delphi 2007
    Par aityahia dans le forum EDI
    Réponses: 3
    Dernier message: 03/07/2007, 14h17
  4. TCP sur delphi 2007
    Par Oregon09 dans le forum Delphi .NET
    Réponses: 2
    Dernier message: 14/05/2007, 15h25

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