MySQL Invalide UTF8 chaîne de caractères lors de l'importation de csv table
Je veux importer une .csv fichier en Base de données MySQL par:
load data local infile 'C:\\Users\\t_lichtenberger\\Desktop\\tblEnvironmentLog.csv'
into table tblenvironmentlog
character set utf8
fields terminated by ';'
lines terminated by '\n'
ignore 1 lines;
L' .csv fichier ressemble à ceci:
Mais j'obtiens l'erreur suivante et je ne peux pas expliquer pourquoi:
Error Code: 1300. Invalid utf8 character string: 'M'
Des suggestions?
Quels étaient les paramètres de sur l'exportation?
Voici mon problème. Pour certains caractères, tels que certaines émoticônes, vous devez utiliser
Voici mon problème. Pour certains caractères, tels que certaines émoticônes, vous devez utiliser
CHARACTER SET utf8mb4
comme décrit ici: stackoverflow.com/a/10959780/470749OriginalL'auteur user7335295 | 2017-04-14
Vous devez vous connecter pour publier un commentaire.
Voir ce que les paramètres de la exportation ont été. Recherchez "UTF-8".
Ceci suggère que "texte Tronqué" est causée par les données n'étant pas codé comme utf8mb4. En dehors de MySQL, "rechercher "UTF-8". (À l'intérieur, MySQL, utf8 et utf8mb4 fonctionner de la même manière à tous les jeux de caractères, de sorte que le
ü
ne devrait pas être un problème.Si elle a été exportée en tant que "cp1252" (ou n'importe quel nombre de codages), l'octet pour
ü
ne serait pas valable pour utf8mb4, conduisant à la troncature.Si cette analyse est correcte, il y a deux solutions:
Plan Un: Exporter en tant que
UTF-8
.Plan B: l'Importation en tant que
latin1
. (Vous n'avez pas besoin de modifier la colonne/la définition de la table, juste leLOAD DATA
.)OriginalL'auteur Rick James
Rien d'autre j'ai essayé de travaillé pour moi, notamment en s'assurant que mon .csv a été enregistré avec l'encodage UTF-8.
Cela a fonctionné:
Lors de l'utilisation de
LOAD DATA LOCAL INFILE
, ensembleCHARACTER SET latin1
au lieu deCHARACTER SET utf8mb4
comme indiqué dans https://dzone.com/articles/mysql-57-utf8mb4-and-the-load-data-infileVoici un exemple complet qui a fonctionné pour moi:
OriginalL'auteur Ryan
Il suffit d'ouvrir le fichier csv dans votre éditeur de texte (comme Nodepad++)
et modifier le fichier de Codage UTF-8
puis importer votre fichier csv
OriginalL'auteur Ammar Bozorgvar
Il se plaint de
'M'
mais je pense que c'est dansMünchen
et la réelle problématique de caractère est prochaine, le tréma'ü'
.Un moyen simple de tester, d'essayer de chargement d'un fichier avec juste les 2 premières lignes & voir si cela fonctionne. Puis ajouter la 3ème ligne, essayez une fois de plus & voir si cela échoue.
Si vous ne pouvez pas ou ne voulez pas remplacer ces caractères spéciaux dans vos données, alors vous aurez besoin pour commencer à étudier les jeux de caractères configuré dans votre fichier CSV, base de données, le tableau, les colonnes, les outils, etc...
Êtes-vous à l'aide de MySQL 5.7 ou au-dessus? Puis quelque chose de simple à essayer serait de changer de
character set utf8mb4
dans votreload data
commande.Voir Comment MySQL 5.7 Poignées utf8mb4' et les commandes Load Data Infile pour un problème similaire.
Voir aussi:
l'importation de geonames allCountries.txt dans MySQL 5.7 utiliser LOAD INFILE - ERREUR 1300 (HY000)
Problèmes avec les caractères utf8; ce que je vois n'est pas ce que j'ai stocké
Incorrecte “chaîne de valeur” lorsque vous tentez d'insérer UTF-8 dans MySQL via JDBC?
OriginalL'auteur davmos