Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
DanielCo
Bonjour, Mets le code suivant dans un module standard. La macro à utiliser est "LitUTF8"; il faut changer les chemins des fichiers en lecture et écriture. Le résultat est un fichier codé ANSI ("normal").
Private Const CP_UTF8 = 65001
Private Declare Function MultiByteToWideChar Lib "kernel32" ( _ ByVal CodePage As Long, ByVal dwFlags As Long, _ ByVal lpMultiByteStr As Long, ByVal cchMultiByte As Long, _ ByVal lpWideCharStr As Long, ByVal cchWideChar As Long) As Long
Public Function sUTF8ToUni(bySrc() As Byte) As String ' Converts a UTF-8 byte array to a Unicode string Dim lBytes As Long, lNC As Long, lRet As Long
Private Function ConvertUTF8File(sUTF8File As String) As String Dim iFile As Integer, bData() As Byte, sData As String, lSize As Long
' Get the incoming data size lSize = FileLen(sUTF8File) If lSize > 0 Then ReDim bData(0 To lSize - 1)
' Read the existing UTF-8 file iFile = FreeFile() Open sUTF8File For Binary As #iFile Get #iFile, , bData Close #iFile
' Convert all the data to Unicode (all VB Strings are Unicode) sData = sUTF8ToUni(bData) Else sData = "" End If ConvertUTF8File = sData End Function
'La macro à exécuter pour copier les lignes du fichier est la suivante :
Sub LitUTF8() ' charge le fichier UTF-8 dans une variable string Unicode sFileBody = ConvertUTF8File("C:UsersDanielDocumentsDonneesDanielExceltestUTF8.txt") ' Enlève le marqueur Unicode de tête (i.e. the &HFEFF sequence) sFileBody = Mid$(sFileBody, 2) Tabl = Split(sFileBody, vbCrLf) Open "C:UsersDanielDocumentsDonneesDanielmpfetestUTF8traduit.txt" For Output As #1 For Each Item In Tabl Print #1, Item Next Item Close #1 End Sub
Comment faire pour les récupérés correctement ? Merci d'avance
Bonjour,
Mets le code suivant dans un module standard. La macro à utiliser est
"LitUTF8"; il faut changer les chemins des fichiers en lecture et
écriture. Le résultat est un fichier codé ANSI ("normal").
Private Const CP_UTF8 = 65001
Private Declare Function MultiByteToWideChar Lib "kernel32" ( _
ByVal CodePage As Long, ByVal dwFlags As Long, _
ByVal lpMultiByteStr As Long, ByVal cchMultiByte As Long, _
ByVal lpWideCharStr As Long, ByVal cchWideChar As Long) As Long
Public Function sUTF8ToUni(bySrc() As Byte) As String
' Converts a UTF-8 byte array to a Unicode string
Dim lBytes As Long, lNC As Long, lRet As Long
Private Function ConvertUTF8File(sUTF8File As String) As String
Dim iFile As Integer, bData() As Byte, sData As String, lSize As Long
' Get the incoming data size
lSize = FileLen(sUTF8File)
If lSize > 0 Then
ReDim bData(0 To lSize - 1)
' Read the existing UTF-8 file
iFile = FreeFile()
Open sUTF8File For Binary As #iFile
Get #iFile, , bData
Close #iFile
' Convert all the data to Unicode (all VB Strings are Unicode)
sData = sUTF8ToUni(bData)
Else
sData = ""
End If
ConvertUTF8File = sData
End Function
'La macro à exécuter pour copier les lignes du fichier est la suivante
:
Sub LitUTF8()
' charge le fichier UTF-8 dans une variable string Unicode
sFileBody =
ConvertUTF8File("C:UsersDanielDocumentsDonneesDanielExceltestUTF8.txt")
' Enlève le marqueur Unicode de tête (i.e. the &HFEFF sequence)
sFileBody = Mid$(sFileBody, 2)
Tabl = Split(sFileBody, vbCrLf)
Open
"C:UsersDanielDocumentsDonneesDanielmpfetestUTF8traduit.txt" For
Output As #1
For Each Item In Tabl
Print #1, Item
Next Item
Close #1
End Sub
Bonjour, Mets le code suivant dans un module standard. La macro à utiliser est "LitUTF8"; il faut changer les chemins des fichiers en lecture et écriture. Le résultat est un fichier codé ANSI ("normal").
Private Const CP_UTF8 = 65001
Private Declare Function MultiByteToWideChar Lib "kernel32" ( _ ByVal CodePage As Long, ByVal dwFlags As Long, _ ByVal lpMultiByteStr As Long, ByVal cchMultiByte As Long, _ ByVal lpWideCharStr As Long, ByVal cchWideChar As Long) As Long
Public Function sUTF8ToUni(bySrc() As Byte) As String ' Converts a UTF-8 byte array to a Unicode string Dim lBytes As Long, lNC As Long, lRet As Long
Private Function ConvertUTF8File(sUTF8File As String) As String Dim iFile As Integer, bData() As Byte, sData As String, lSize As Long
' Get the incoming data size lSize = FileLen(sUTF8File) If lSize > 0 Then ReDim bData(0 To lSize - 1)
' Read the existing UTF-8 file iFile = FreeFile() Open sUTF8File For Binary As #iFile Get #iFile, , bData Close #iFile
' Convert all the data to Unicode (all VB Strings are Unicode) sData = sUTF8ToUni(bData) Else sData = "" End If ConvertUTF8File = sData End Function
'La macro à exécuter pour copier les lignes du fichier est la suivante :
Sub LitUTF8() ' charge le fichier UTF-8 dans une variable string Unicode sFileBody = ConvertUTF8File("C:UsersDanielDocumentsDonneesDanielExceltestUTF8.txt") ' Enlève le marqueur Unicode de tête (i.e. the &HFEFF sequence) sFileBody = Mid$(sFileBody, 2) Tabl = Split(sFileBody, vbCrLf) Open "C:UsersDanielDocumentsDonneesDanielmpfetestUTF8traduit.txt" For Output As #1 For Each Item In Tabl Print #1, Item Next Item Close #1 End Sub