Function Open_For_Read_Force_Udf_8(ByVal fichier$, texto$)
Dim lachaine As String, x: x = FreeFile
'lecture binnaire
Open fichier For Binary Access Read As #x: lachaine = String(LOF(x), " "): Get #x, , lachaine: Close #x
If Not lachaine Like "*[Ã|é|è|ç|â|€|«|»|û|ê|…|/ø|ø|À|É|È|Ã|Ö|]*" Then 'si la chaine ne contient pas de carateres sbizarre
texto = lachaine ' alors texto = lachaine
Else ' sinon on stream le fichier avec ADOBD.Stream
With CreateObject("ADODB.Stream")
.Charset = "utf-8": .Open: .LoadFromFile (fichier): texto = .ReadText()
End With
End If
End Function
Sub convert() ' recupe le texte complet avec binary acces read
Dim texto$, lachaine$
Open_For_Read_Force_Udf_8 ThisWorkbook.Path & "\Mémo UTF-8.txt", texto
MsgBox " à la lecture avec la fonction bimode ça donne ça" & vbCrLf & texto
fichier = ThisWorkbook.Path & "\BisMémo UTF-8.txt"
If Dir(fichier) <> "" Then Kill fichier
With CreateObject("ADODB.Stream")
.Open
.Position = 0
.Charset = "UTF-8"
.WriteText texto
.SaveToFile fichier
.Close
End With
DoEvents
x = FreeFile: Open fichier For Binary Access Read As #x: lachaine = String(LOF(x), " "): Get #x, , lachaine: Close #x
MsgBox " a la relecture apres comversion ça donne ça" & vbCrLf & lachaine
End Sub