Lors de la tentative de lecture d'un fichier CSV contenant des caractères accentués avec Python (en particulier l'espagnol ou le français), un problème survient en raison du problème de Python. Prise en charge ASCII par défaut dans son csvreader.
Pour résoudre ce problème, un extrait de code modifié est proposé pour lire le fichier CSV comme suit :
<code class="python">import csv def unicode_csv_reader(utf8_data, dialect=csv.excel, **kwargs): csv_reader = csv.reader(utf8_data, dialect=dialect, **kwargs) for row in csv_reader: yield [unicode(cell, 'utf-8') for cell in row] filename = 'output.csv' reader = unicode_csv_reader(open(filename)) for field1, field2, field3 in reader: ...</code>
Ce code suppose que les données d'entrée sont déjà au format UTF. -8 encodage. Si les données d'entrée sont dans un encodage différent, l'approche de « transcodage » suivante peut être appliquée :
<code class="python">line.decode('whateverweirdcodec').encode('utf-8')</code>
En remplaçant « whateverweirdcodec » par l'encodage approprié, les données d'entrée peuvent être converties en UTF-8 avant en cours de lecture par le csvreader.
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!