Encodage lors d'import de données

Bonjour ,

Est-ce que quelqu'un saurait comment régler les problèmes d'encodage lors des imports sur googles sheets? j'ai des termes comme Österreichische au lieu de Österreichische. merci

Bonjour,

  • de où viennent les données ? fichier csv ?
  • il est possible de faire un script de décodage ... mais c'est toujours plus long qu'une source unicode
  • as-tu un bout de fichier source ou de feuille (GSheets) avec ce type de caractères pour tester une solution par script ? (que j'ai en excel mais qu'il faudrait convertir)

Les données viennent d'un fichier .xlsx

le lien du fichier par exemple : https://docs.google.com/spreadsheets/d/14rVIpp3yPJ1iROuZRvw6-j8W080OjtFs0-6H4QFQ-VI/edit?usp=sharing

Pfft, dommage que le fichier excel ne respecte pas l'unicode. A moins que cela ne soit la méthode d'importation ?

Je regarde pour faire une fonction personnalisée, mais cela prendra un peu de temps. C'est un investissement qui ne sera pas inutile.

d'accord ça m'aiderai beaucoup pour la suite merci :)

J'arrive à décoder ceci DéFI - Démocrate Fédéraliste Indépendant

 DéFI - Démocrate Fédéraliste Indépendant 

mais je coince encore pour Österreich Werbung

Österreich Werbung

Une première solution serait de résoudre le problème à la racine ...

Function Utf8_Decode(ByVal txt As String) As String
Dim ln As Long, s As String, i As Integer, j As Integer, K As Integer
    For ln = 1 To Len(txt)
        i = Asc(Mid(txt, ln, 1))
        If i > 127 Then
            If Not i And 32 Then
                j = Asc(Mid(txt, ln + 1, 1))
                s = s & ChrW$(((31 And i) * 64 + (63 And j)))
                ln = ln + 1
            Else
                j = Asc(Mid(txt, ln + 1, 1))
                K = Asc(Mid(txt, ln + 2, 1))
                s = s & ChrW$(((i And 15) * 16 * 256) + ((j And 63) * 64) + (K And 63))
                ln = ln + 2
            End If
        Else
            s = s & Chr$(i)
        End If
    Next ln
    Utf8_Decode = s
End Function

C'est bien une macro?

Dans excel oui.

Je vais la transformer en script pour google sheets.

Mais encore une fois, je ne comprends pas que les données de base ne soient pas encodées correctement ! Comment est opérée le transfert excel > GSheets aujourd'hui ? et où excel puise ses informations ?

De ce que j'ai compris les données ont été importé premièrement depuis un fichier .txt /html , et ensuite de excel l'importation a été faite sur Gsheet. Je pensais que ce dernier résoudrai le problème mais non.

je vais y arriver avec un script sur Google Sheets, mais le mieux serait quand même que, lors de l'import par excel, la correction se fasse (et pour cela la macro VBA fait très bien l'affaire).

Voici une fonction qui te permettra de décoder

function utf8decode(utftext) {
  var string = "";
  var i = 0;
  var c = c1 = c2 = 0;
  while ( i < utftext.length ) {
    c = utftext.charCodeAt(i);
    if (c < 128) {
      string += String.fromCharCode(c);
      i++;
    }
    else if((c > 191) && (c < 224)) {
      c2 = utftext.charCodeAt(i+1);
      string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
      i += 2;
    }
    else {
      c2 = utftext.charCodeAt(i+1);
      c3 = utftext.charCodeAt(i+2);
      string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
      i += 3;
    }
  }
  return string;
}
image

Merci beaucoup ça marche parfaitement !!

Rechercher des sujets similaires à "encodage lors import donnees"