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

Windows Forms Discussion :

Déterminer si un fichier est encodé en unicode


Sujet :

Windows Forms

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Par défaut Déterminer si un fichier est encodé en unicode
    Bonjour,

    Je reçois des fichiers (txt ou dat) qui doivent être encodés en unicode. Parfois, certains fichiers sont encodés en ANSI et je ne dois pas les accepter.

    Comment puis-je tester le type de codage d'un fichier ?

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Par défaut
    J'ai finalement trouvé une solution qui vient plutôt du monde Delphi et qui consiste à utiliser la méthode read pour lire les deux premiers bytes de fichier. Il exist preut-être plus simple, mais en tous cas ça marche.

    Encore faut-t-il en avoir le besoin ...

    Si ça intéresse quelqu'un, je veux bien poster le code !

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 12
    Par défaut
    Bonjour,
    Je suis intéressé par ton code, si ça ne t'ennuie pas.

    Merci.


    CCC

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Par défaut
    voici la fonction que j'utilise

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
     
        Public Function SiBonUnicode(ByVal MyF As String) As Boolean
            Dim enc As System.Text.Encoding = Nothing
            Dim fic As System.IO.FileStream = New System.IO.FileStream(MyF, FileMode.Open, FileAccess.Read, FileShare.Read)
            Dim bom As Byte() = New Byte(3) {}
     
            If fic.CanSeek Then
                fic.Read(bom, 0, 4)
                'si         (0=239    and          1=187  and            2=191 )    or   (       0=255   and           1=254 ) or   (    0 =254    and       1=255     )  or     (   0=0    and 1= 0     and                2 =254             and 3 = 255 )
                If (bom(0) = &HEF AndAlso bom(1) = &HBB AndAlso bom(2) = &HBF) OrElse (bom(0) = &HFF AndAlso bom(1) = &HFE) OrElse (bom(0) = &HFE AndAlso bom(1) = &HFF) OrElse (bom(0) = 0 AndAlso bom(1) = 0 AndAlso bom(2) = &HFE AndAlso bom(3) = &HFF) Then ' ucs-4
                    SiBonUnicode = True
                Else
                    SiBonUnicode = False
                End If
                fic.Seek(0, System.IO.SeekOrigin.Begin)
            Else
                SiBonUnicode = False
            End If
            fic.Close()
            fic = Nothing
        End Function
    Ca détecte beaucoup d'encodages unicodes, mais pas tous j'ai en tous cas un cas ou ça ne détecte pas. Si le framework pouvait fournir une fonction SiUnicode, ce serait top.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 12
    Par défaut
    Merci.

    CCC

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

Discussions similaires

  1. Déterminer si un fichier est un fichier texte
    Par MrAzerty dans le forum AIX
    Réponses: 2
    Dernier message: 19/03/2009, 08h57
  2. Lire un fichier encodé en UNICODE
    Par loman02 dans le forum XML
    Réponses: 9
    Dernier message: 16/02/2007, 18h19
  3. Déterminer le Type fichier texte unicode, utf8?
    Par soazig dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 08/02/2007, 22h12
  4. Macro dans excel permettant de voir si un fichier est ouvert
    Par VirginieGE dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/08/2004, 07h51
  5. Comment déterminer si un composant est d'un type "TMonT
    Par DanielR dans le forum C++Builder
    Réponses: 2
    Dernier message: 20/03/2004, 18h22

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