2017-05-11 5 views
0

CSVファイルをダウンロードする機能をユーザーに提供したいと思います。リクエストが完了したときに作成されます。ユーザーが要求を行い、データがデータベースから取得され、ファイルが作成されます。私は特定のエンコーディング(私の場合はUTF-8)を使用したいと思います。エンコーディングを指定しないと、サーバーのローカルエンコーディングが使用されていると思います(私の場合はascii-usです)。だから、私はヘッダとしてエンコーディングを渡そうとしましたが、成功しませんでした。エンコーディングはまだascii-usです。ここに私のコードです。ここでCSVファイルエンコーディングをTornadoで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')) 

ダウンロードしたファイルの詳細です:
my_file.csv my_file.csv -i

ファイル:text/plainでは、文字セット= US-ASCII

私は文字セットを持っていると思います= UTF8

ありがとうございました!

答えて

0

あなたはこの

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) 

     for line in lines: 
      self.write(line.encode("UTF-8")) 
+0

を試すことができますが、その間に、まだ私は、ダウンロードした後、型をチェックするとき、それはUS-ASCII – giliev

+0

全体ではなく、生をコードしているのです、別途各フィールドを符号化することを試みました。 – Anoop

+0

も試してみましたが、うまくいきませんでした – giliev

関連する問題