Reconnaitre un fichier texte en UTF8

Soyez le premier à donner votre avis sur cette source.

Snippet vu 3 243 fois - Téléchargée 20 fois

Contenu du snippet

Bonjour,
Voici le rectificatif à ma précédente version 1.0 (Prise en compte de Option Strict On)
---------------------
Option Explicit On
Option Strict On
Imports System.IO       
        Dim st As FileStream = Nothing
        st = File.Open(MonFichierTexte, FileMode.Open, FileAccess.Read)
        Dim Marqueur As String = st.ReadByte.ToString & st.ReadByte.ToString & st.ReadByte.ToString
        st.Close()
        If Marqueur <> "239187191" Then
            MsgBox("Le fichier n'est pas codé en UTF8")
        Else
            MsgBox("Le fichier est codé en UTF8")
        End If

Nota: les 3 premiers octets décimaux d'un fichier texte UTF8 sont 239, 187 et 191
Mes remerciements

Compatibilité : Version 2.0

A voir également

Ajouter un commentaire

Commentaires

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
70
Dans ce genre de discution pleinement technique, mieux vaut parler en hexa, c'est plus logique.

Valeur des bytes du Preamble, pour info :
UTF-8 : EF BB BF
UTF-16 avec primauté des octets de poids fort (big-endian) : FE FF
UTF-16 avec primauté des octets de poids faible (little-endian) : FF FE
UTF-32 avec primauté des octets de poids fort (big-endian) : 00 00 FE FF
UTF-32 avec primauté des octets de poids faible (little-endian) : FF FE 00 00
Messages postés
473
Date d'inscription
mercredi 7 août 2002
Statut
Membre
Dernière intervention
10 juin 2015

La bonne méthode consiste plutôt en ceci :
st.ReadByte() =239 and st.ReadByte() = 187 and st.ReadByte() = 191

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.