Chargement de texte utf-8 dans une table MySQL
J'ai un gros fichier CSV que je vais le charger dans une table MySQL. Cependant, ces données sont encodées en utf-8, car ils comportent des caractères non anglais.
J'ai déjà le jeu de caractères de la colonne correspondante dans la table de l'utf-8. Mais quand je charge mon fichier. les non-anglais caractères en caractères bizarres(quand je fais un select sur mes lignes de la table). Ai-je besoin pour encoder mes données avant que je charge la dans la table? si oui comment puis-je faire cela. Je suis à l'aide de Python pour charger les données et en utilisant la commande LOAD DATA LOCAL INFILE.
grâce
- 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/470749
Vous devez vous connecter pour publier un commentaire.
comme dit dans http://dev.mysql.com/doc/refman/5.1/en/load-data.html,
vous pouvez spécifier le jeu de caractères utilisé par votre fichier CSV avec le "JEU de CARACTÈRES" paramètre facultatif de LOAD DATA LOCAL INFILE
Essayer
N'avez pas besoin d'encoder vos personnages dans le fichier, mais vous devez vous assurer que votre fichier est l'encodage en UTF-8 avant de charger ce fichier de base de données.
Vous devez envoyer
lors MySQLdb.connect()
par exemple,
edit: ah, désolé, je vois que vous avez ajouté que vous êtes à l'aide de "LOAD DATA LOCAL INFILE" -- ce n'était pas clair à partir de votre question initiale 🙂
Essayer quelque chose comme,
LOAD DATA LOCAL INFILE "fichier"
DANS le TABLEAU message_history
JEU DE CARACTÈRES UTF8
LES COLONNES RÉSILIÉ PAR '|'
ÉVENTUELLEMENT ENCLOSED BY '"'
ESCAPED BY '"';
Structure D'Origine,
https://dev.mysql.com/doc/refman/8.0/en/load-data.html