Caractères spéciaux et encodage

Bonjour à tous,

Je viens vers vous car j'ai un petit problème d'encodage avec les fichiers CSV. Lorsque je fais mon import CSV, j'utilise la conversion par délimiteur (virgule) et rien à faire les caractères spéciaux ne sont pas présents dans le résultat final.

J'ai tester de l'importer en modifiant l'encodage source mais lé résultat est le même. J'ai également vu qu'il était possible d'ouvrir le fichier avec un éditeur de texte comme Notepad et de modifier l'encodage pour Ansi. Auriez-vous une solution intégrée à Excel directement?

Pour info, j'ai vérifié et je n'ai pas trouvé beaucoup de sujets similaires sur le forum.

Merci beaucoup pour votre aide !

Bonjour

Le séparateur de champs et l'encodage sont 2 choses différentes. L'ansi ne contient pas de caractères spéciaux donc il ne faut pas convertir mais ouvrir avec les bons paramètres.

Sans ton fichier on ne peut t'aider

Merci beaucoup pour le retour rapide, voici un exemple de fichier. Désolé pour les confusions.

Le but est tout simplement d'avoir un fichier sans caractères spéciaux à la fin. Merci encore :)

106test.csv (5.27 Ko)

RE

Peux-tu compléter ton profil en indiquant ta version Excel

Quelle est l'origine du csv ?

A priori codé en UTF16, non supporté par Excel mais ne semble pas correctement codé car même les convertisseurs ne l'accepte pas

Bonjour,

Ma version d'excel est la 16.40 et le fichier excel provient d'un logiciel de scrapping/automatisation: LeadConnect. C'est possible que l'encodage soit mauvais, ça ne serait pas la 1ère fois que je rencontre des difficultés avec ce logiciel.

Si l'encodage n'est pas supporté par excel, le serait-il avec gsheet? Parce que cela produit le même résultat.

Avez-vous besoin d'une autre information?

Merci beaucoup :)

RE

16.40 n'est pas une version : soit 2016, 2019, 365... PC ou MAC et met-le dans ton profil afin que l'on n'ait pas à te poser à chaque fois la question

Le souci de ton fichier c'est que le codage des lettres accentuées semble correspondre à UTF16 mais qu'il n'est pas reconnu comme tel par les convertisseurs

Quand tu exportes, as-tu des options de formatage ?

Y a t-il d'autre formats que csv ?

Hello,

Désolé pour les confusions alors, j'ai changé mon profil pour Mac 2019. J'ai également demandé au support du logiciel quel encodage était utilisé.

Aucune autre option que le CSV à l'export... et pas d'option de formatage. C'est vraiment un formulaire basique avec la date et une autre option sans rapport avec l'encodage...

C'est bizarre que l'encodage ne soit pas reconnu, quel convertisseurs utilises-tu pour vérifier?

Je te tiens informé du retour du support le cas échéant, thanks en tout cas

RE

u009E pour é est en principe de l'UTF16 mais les transcodeurs en ligne n'acceptent pas ton fichier.

Le fichier que j'ai transmis est une version que j'ai ouverte avec excel pour supprimer quelques lignes. Est-ce que le fichier joint serait reconnu pour l'UTF-16 par hasard?

13leadconnect.csv (25.76 Ko)

Bonjour à tous ...

un peu curieux ce fichier, on y trouve des caractères diacritiques en l'état

Production performance Août 2020

et on trouve des caractères unicode (Délégué _____________)

Du00e9lu00e9guu00e9 du2019Etat Major Performance et Transformation Business Excellence Senior Executive Advisor

On peut tout laisser brut de forge à ce stade, cela ne doit pas entraver la lecture du fichier. Faire ensuite une moulinette pour décoder les quelques caractères spéciaux ! C'est une option pragmatique ...

@Chris :

u009E pour é est en principe de l'UTF16 mais les transcodeurs en ligne n'acceptent pas ton fichier.

u00E9, mais on a tous corrigé !

Il me semble quand même qu'il manque le caractère qui indiquera qu'il s'agit d'un caractère unicode.

C'est assez difficile de lire un fichier texte sans qu'il soit interprété, mais ce que je vois sauf erreur de ma part, c'est ceci

68-117-48-48-101-57-108-117-48-48-101-57-103-117-117-48-48-101-57

c'est une suite de code ascii de chaque caractère du premier mot pour

Du00e9lu00e9guu00e9

qui signifie Délégué ... et rien ne m'indique que u00e9 est à considérer comme é, ni même u2019 que l'on rencontre aussi dans le fichier pour l'apostrophe.


edit : j'ai fait un test d'enregistrement d'un fichier texte en utf-16 :

7test-utf16be.csv (32.00 Octets)

et celui-ci commence par

þÿ

ce que je ne vois pas dans le fichier csv


Bon, je m'arrête là car j'ai mis mon grain de sel sans rien apporter de concret, je m'éclipse ... veuillez m'excuser de mon intrusion !

RE à tous

Finalement le csv original lui-même est codé en UTF8. En le déclarant comme tel on récupère sans souci plein de lettres accentuées

Mais il contient des données, sans doute importée incorrectement dans LeadConnect, qui contiennent des caractères codés en UTF16 et ces caractères là du coup ne sont pas transformés à l'import

Donc le problème se situe ne amont.

Si vous ne pouvez pas le régler en amont, il va falloir une table de transcode de tous ces caractères : à priori lettres accentuées mais aussi caractères comme l’apostrophe semble-t-il

RE à tous

Si vous ne pouvez pas le régler en amont, il va falloir une table de transcode de tous ces caractères : à priori lettres accentuées mais aussi caractères comme l’apostrophe semble-t-il

Voici les différents cas trouvés ici

u00f4    3    ô
u00e9    84   é
u2019    5    '
u00e8    5    è
u00e7    1    ç
u00e0    1    à
u00c9    1    É

Le code qui m'a permis d'explorer ... il y a un peu de tout, des expressions régulières t du scripting dictionary

Sub lire()
    Dim dico As Object, txt As String
    Set dico = CreateObject("Scripting.Dictionary")

    Set obj = CreateObject("vbscript.regexp")
    obj.Pattern = "u[0-9a-fA-F]{4}"
    obj.Global = True

    Fichier = Application.GetOpenFilename("Fichiers texte, *.csv;*.txt")
    If Fichier = False Then Exit Sub

    N = FreeFile
    Open Fichier For Input As #N
    Do While Not EOF(1)
        Line Input #N, Contenu

        Set res = obj.Execute(Contenu)
        For i = 0 To res.Count - 1
            txt = res(i)
            dico(txt) = dico(txt) + 1
        Next

    Loop
    Close #N

    Range("A1").CurrentRegion.Offset(1, 0).Clear
    i = 2
    For Each cle In dico.keys
        Cells(i, 1) = cle
        Cells(i, 2) = dico(cle)
        Cells(i, 3).FormulaR1C1 = "=HEX2DEC(RIGHT(RC[-2],4))"
        Cells(i, 4).FormulaR1C1 = "=UNICHAR(RC[-1])"
        i = i + 1
    Next

End Sub

Bonjour à toutes et tous,

Une proposition Power query avec une table de conversion et une fonction personnalisée (pas de moi et j'ai omis de noter le créateur et le site web ).

Il y a un caractère qui m'ennuie : u2019

Je n'ai traité que les champs FirstName et Occupation.

J'ai utilisé le fichier leadConnect.csv

Cdlt.

Bonjour Jean-Eric,

le u2019 peut-être remplacé par l'apostrophe simple (il s'agit plus exactement du single right quote characters )

il manque aussi le É présent une fois

Pour compléter la table, il y a aussi d'autres marqueur qui vont modifier un caractère de base ...

grave accent
acute accent
circumflex accent
diaresis
tilde
degree sign
middle dot
cedilla
macron
dot above
ogonek
caron
breve
double acute accent
horn

J'avais fait une étude à ce sujet pour produire un clavier multilingue latin complet en javascript, je viens de retrouver la table. Je n'ai pas linéariser, il faut jouer avec les 2 onglets ...

Re,

@Steelson,

La fonction personnalisée ne fonctionne pas pour le caractère u2019 et l'apostrophe ???

J'ai fait un équivalent (Remplacer comme sous Excel).

j'ai ajouté le é majuscule. Et traité le champ Company Name...

Je préparerai une liste complète des caractères diacritiques français.

.La mise à jour :

La fonction personnalisée ne fonctionne pas pour le caractère u2019 et l'apostrophe ???

J'ai fait ceci dans une feuille excel et cela donne l'apostrophe biscornue droite

=UNICAR(HEXDEC(DROITE("u2019";4)))

Je préparerai une liste complète des caractères diacritiques français.

Ne te limite pas trop au français, il peut y avoir des noms espagnols avec á ó ñ, même si le rapport de 1990 sur les rectifications orthographiques recommande la francisation et donc de ne pas utiliser le ñ. Mais il peut y avoir des compagnies internationales. Et si j'étais concerné, je serais consterné qu'on m'écorche mon nom !

Rechercher des sujets similaires à "caracteres speciaux encodage"