Je souhaite fournir aux utilisateurs une fonctionnalité pour télécharger des fichiers CSV, qui seront créés lorsque la requête est effectuée, par ex. l'utilisateur fait la demande, les données sont extraites de la base de données et ensuite le fichier est créé. Je voudrais utiliser un encodage spécifique (UTF-8 dans mon cas). Quand je ne spécifie pas l'encodage, je pense que le codage local du serveur est utilisé (dans mon cas ascii-us). J'ai donc essayé de passer l'encodage en entête, mais sans succès - l'encodage est toujours ascii-us. Voici mon code.Comment spécifier le codage de fichier CSV lors du téléchargement avec Tornado en Python?
class CsvHandler(RequestHandler):
lines = ['line1', 'line2'] # in actual use case those lines are from DB
def get(self):
self.set_header('Content-Type', 'text/csv')
self.set_header('Content-Disposition', 'attachment; filename=' + filename)
self.set_header('Content-Encoding', 'UTF-8')
for line in lines:
self.write(line.encode('UTF-8'))
Voici les détails du fichier téléchargé:
fichier-i mon_fichier.csv
mon_fichier.csv: text/plain; charset = us-ascii
Je voudrais avoir charset = UTF8
Merci!
essayé en attendant, encore quand je vérifie le type après le téléchargement, il est nous-ascii – giliev
au lieu de coder toute brute, coder chaque champs séparément. – Anoop
essayé aussi, n'a pas fonctionné – giliev