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++Builder Discussion :

Codage USC-2 UTF-8 ANSI


Sujet :

C++Builder

  1. #1
    Membre actif Avatar de Baxter67
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 270
    Points : 216
    Points
    216
    Par défaut Codage USC-2 UTF-8 ANSI
    Bonjour, après des recherches infructueuses sur google et sur le forum je me permet de poser la question directement ici.

    Donc, dans mon application je dois ouvrir des fichier texte pour les traiter. Pour les fichier texte j'ai toujours utilisé des TStringList qui fonctionne parfaitement bien.
    Mais pas pour les fichiers que j'ai pour cette application.

    Quand je charge le fichier et l'affiche dans un memo, l'affichage ne correspond pas au fichier, il affiche 3 caractères bizare.

    Après des recherches je me suis rendu compte que le fichier était codé en USC-2, codage qui je présume n'est pas reconnue par le composant TStringList.
    Si je change l'encodage en UTF-8 avec Notepad++ il n'y plus de problèmes, mis a part le fait des caractères spéciaux qui s'affiche pas (é à è etc ...).

    Donc ma question est : comment je dois procédé pour codé le fichier USC-2 de base en UTF-8 avant de l'ouvrir avec TStringList.
    Puis comment puis je récupéré les caractéres spéciaux (é à è ...).

    Merci pour votre aide.
    Cordialement
    Baxter

  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    Récupération du texte :

    Il me semble qu'il suffit de donner un paramètre supplémentaire à LoadFromFile :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    virtual __fastcall LoadFromFile(const AnsiString FileName, TEncoding Encoding);
    avec Encoding à BigEndianUnicode ou Unicode.

    Support des caractères spéciaux :

    Passer tout le projet en Unicode.

  3. #3
    Membre actif Avatar de Baxter67
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 270
    Points : 216
    Points
    216
    Par défaut
    Merci pour votre réponse.
    Mais le compilateur ne reconnait pas le type TEncoding.

    Undefined symbol 'TEncoding'
    Y aurait-il un include à mettre ?

    Cordialement
    Baxter

  4. #4
    Invité(e)
    Invité(e)
    Par défaut
    Citation Envoyé par Baxter67 Voir le message
    Y aurait-il un include à mettre ?
    Chez moi, c'est déclaré dans SysUtils.hpp, mais vcl.h suffit.

    J'utilise CodeGear 2009, votre version est peut-être un peut vielle ?

  5. #5
    Membre actif Avatar de Baxter67
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 270
    Points : 216
    Points
    216
    Par défaut
    J'utilise BCB 6.
    Je vais faire le test tous de suite.

  6. #6
    Membre actif Avatar de Baxter67
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 270
    Points : 216
    Points
    216
    Par défaut
    J'ai toujours la même erreur malgrés les include

  7. #7
    Invité(e)
    Invité(e)
    Par défaut
    J'ai l'impression que c'est une nouveauté de la version 2009 : https://downloads.embarcadero.com/Item/26954.

    Il va falloir changer de version (si possible) ou le faire à la main avant de mettre les caractères dans TStringsList.
    Un peut de lecture : Generic-Text Mappings in Tchar.h et _strrev, _wcsrev, _mbsrev, _mbsrev_l

  8. #8
    Membre actif Avatar de Baxter67
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 270
    Points : 216
    Points
    216
    Par défaut
    Je ne peux malhereusement pas changer de version pour le moment.

    Je vais lire toutes ces doc, mais je pensais pas que c'étais si fastidieux ...

  9. #9
    Membre actif Avatar de Baxter67
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 270
    Points : 216
    Points
    216
    Par défaut
    Bon, je comprend vraiment pas comment changer l'encodage avec BCB6.

    Vous pourriez me donner un peu plus de détail, voir même un exemple ?

    Merci par avance.

    Cordialement
    Baxter

  10. #10
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut
    Les caractères bizarres dont tu parles sont des BOM, pour voir la liste va voir: http://en.wikipedia.org/wiki/Byte-or...ks_by_encoding

  11. #11
    Membre actif Avatar de Baxter67
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 270
    Points : 216
    Points
    216
    Par défaut
    Merci, mais ça je l'avais déjà vue, moi ce que je comprend pas c'est comment convertir le fichier.

    P.S. quand j'ouvre un fichier txt de 100 000 lignes (USC-2) dans StringList, la list ne contient que 1 lignes avec la BOM et c'est tous.

    Cordialement Baxter

  12. #12
    Membre actif Avatar de Baxter67
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 270
    Points : 216
    Points
    216
    Par défaut
    Je pense avoir trouver une solution pour convertir un fichier USC-2 en ANSI.

    J'ai fais un bout de code vite fait, je continue mes test, je le rend beau et le posterais ici pour avoir votre avi

    Cordialement
    Baxter

Discussions similaires

  1. [PHP 5.3] Encodage UTF-8 / ANSI
    Par Snooky68 dans le forum Langage
    Réponses: 1
    Dernier message: 14/12/2010, 11h37
  2. [Lazarus] [0.9.28.2/Win XP] TStringGrid et UTF-8 <-> ANSI
    Par danucc dans le forum Lazarus
    Réponses: 4
    Dernier message: 02/09/2010, 13h23
  3. [PHP 5.2] Convertir un fichier de UTF-8 à ANSI
    Par Invité dans le forum Langage
    Réponses: 2
    Dernier message: 02/09/2009, 12h04
  4. Eclipse 3.2.0 utf-8 -> ANSI
    Par Mind-x dans le forum Eclipse
    Réponses: 2
    Dernier message: 08/12/2008, 23h49
  5. [UTF-8 ANSI] Conversion de fichier
    Par M1000 dans le forum Langage
    Réponses: 1
    Dernier message: 06/03/2007, 17h33

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