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 Sub

Ce 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...

Rechercher des sujets similaires à "caracteres speciaux utf iso"