Caractères spéciaux de UTF-8 à ISO
Bonsoir,
Je souhaite importer un fichier .csv issu d'une table en UTF-8 dont tous les caractères spéciaux sont transformés en à et un autre signe.
Existe-t-il une table déjà définie et une macro ?
Je n'ai rien trouvé dans les sujets du forum.
Merci
Je suis surpris car excel comprend bien les caractères unicode (utf-8) !
Il est probable par contre que le fichier texte au format csv ait rencontré des problèmes lors de l'écriture, ou tout simplement que ce soit le logiciel de lecture du fichier csv qui ne montre pas les caractères souhaités. Le caractère unicode est codé sur une longueur double et il est probable que ce logiciel l'affiche comme 2 caractères.
Peux-tu nous donner ce fichier csv ?
Bonsoir,
conversion possible via le Stream d'ADODB ou encore avec l'une des nombreuses moulinettes du net …
Bjr,
Pas assez calé pour comprendre le Stream ADODB...
Je me suis mal exprimé. Les tables php ont été importées/exportées plusieurs fois dans une base UTF-8 avec des tables ISO.
D'où les nombreux conflits.
En ligne j'ai réglé le pb mais c'est dans le csv que c'est un bazar innommable.
Je me suis finalement bricolé une macro.
Sub caract_speciaux()
Application.ScreenUpdating = False
Dim DernLigne As Long
DernLigne = Range("A" & Rows.Count).End(xlUp).Row
Dim contenu As String
For i = 1 To DernLigne
Range("A" & i).Select
With ActiveCell
'a
.Replace What:="Ã ", Replacement:="à", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
'â
.Replace What:="à¢", Replacement:="â", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
.Replace What:="â", Replacement:="â", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
.Replace What:="ä", Replacement:="ä", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
.Replace What:="Ã¥", Replacement:="å", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
' À
.Replace What:="à€", Replacement:="À", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
.Replace What:="á", Replacement:="à", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
'c
.Replace What:="à§", Replacement:="ç", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
.Replace What:="ç", Replacement:="ç", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
'e
.Replace What:="à©", Replacement:="é", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
.Replace What:="é", Replacement:="é", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
.Replace What:="è", Replacement:="è", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
.Replace What:="à¨", Replacement:="è", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
.Replace What:="à«", Replacement:="ë", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
.Replace What:="ë", Replacement:="ë", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
.Replace What:="ê", Replacement:="ê", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
.Replace What:="àª", Replacement:="ê", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
'E
.Replace What:="Ê", Replacement:="Ê", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
.Replace What:="àŠ", Replacement:="Ê", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
.Replace What:="à‰", Replacement:="É", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
.Replace What:="É", Replacement:="É", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
.Replace What:="é", Replacement:="É", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
'i
.Replace What:="î", Replacement:="î", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
.Replace What:="ï", Replacement:="ï", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
.Replace What:="à®", Replacement:="î", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
.Replace What:="à¯", Replacement:="ï", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
'o
.Replace What:="à¶", Replacement:="ö", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
.Replace What:="ö", Replacement:="ö", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
'ô
.Replace What:="à´", Replacement:="ô", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
.Replace What:="ô", Replacement:="ô", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
.Replace What:="ò", Replacement:="ó", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
.Replace What:="ó", Replacement:="ó", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
'u
.Replace What:="à¼", Replacement:="ü", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
.Replace What:="ü", Replacement:="ü", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
.Replace What:="û", Replacement:="û", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
.Replace What:="à»", Replacement:="û", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
.Replace What:="ù", Replacement:="ù", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
'y
.Replace What:="ÿ", Replacement:="ÿ", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
'Spéciaux
.Replace What:="°", Replacement:="°", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
.Replace What:="’", Replacement:="'", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
.Replace What:="â??", Replacement:="-", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
.Replace What:="–", Replacement:="-", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
''
.Replace What:="\'", Replacement:="'", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
'{
.Replace What:="{", Replacement:="", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
'}
.Replace What:="}", Replacement:="", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
'...
.Replace What:="…", Replacement:="…", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
'ñ
.Replace What:="ñ", Replacement:="ñ", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
'ç
.Replace What:="Ç", Replacement:="Ç", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
End With
Next i
Range("A1").Select
End SubCe n'est pas tout bien rangé mais ça fonctionne bien.
Je suis quad même preneur de mieux si quelqu'un trouve bien sûr.
Steelson a écrit :Peux-tu nous donner ce fichier csv ?
Le fichier intégral non car il est trop lourd et contient des données privées.
J'en extrais la colonne qui pose pb
Bon,
Le fichier n'est pas passé... trop lourd.
Voilà
J'ai essayé diverses méthodes fonctionnant bien avec d'autres fichiers mais avec pas du tout avec le tien …
La seule que j'ai trouvée suffisamment efficace c'est celle que j'ai indiquée dans ma macro.
C'est lent mais efficace...