Chargement de texte codé UTF-8 dans une table MySQL
Lorsque vous rencontrez des caractères non anglais dans un fichier CSV destiné à être chargé dans une table MySQL , il est crucial de garantir la bonne gestion du codage des caractères. Cela devient particulièrement important avec la présence de caractères non-ASCII, car leur représentation peut varier en fonction de l'encodage choisi.
Dans votre cas, définir le jeu de caractères de la colonne de tableau correspondante sur UTF-8 seul peut ne pas être suffisant. Pour garantir que les caractères non anglais sont conservés avec précision lors du chargement des données, il est essentiel de spécifier explicitement le jeu de caractères lors de la commande LOAD DATA LOCAL INFILE.
Pour Python, l'approche suivante peut être utilisée :
<code class="python">import MySQLdb # Connect to the database db = MySQLdb.connect(host="localhost", user="root", passwd="password", db="database_name") cursor = db.cursor() # Prepare the LOAD DATA statement stmt = ("LOAD DATA INFILE 'file' " "IGNORE INTO TABLE table " "CHARACTER SET UTF8 " "FIELDS TERMINATED BY ';' " "OPTIONALLY ENCLOSED BY '"' " "LINES TERMINATED BY '\n'") # Execute the statement cursor.execute(stmt) # Commit the changes db.commit()</code>
En spécifiant explicitement CHARACTER SET UTF8 dans la déclaration, MySQL est invité à interpréter les données comme codées en UTF-8. Cela garantit que les caractères non anglais sont correctement représentés et stockés dans le tableau, même s'ils incluent des caractères en dehors de la plage ASCII.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!