Django InMemoryUploadedFile具有通用线制动器和utf8

时间:2017-02-04 14:21:31

标签: django python-2.7 django-uploads

在我的django应用程序中,用户可以上传他们的csv文件以将数据导入django。它适用于CLRF unicode文件。

但有两个问题:

  1. 如果文件未使用utf8编码,我会继续'utf8' codec can't decode byte 0xdc in position 393: invalid continuation byte。我试图通过使用以下代码来解决这个问题

    file = codecs.EncodedFile(request.FILES['import'],"utf-8")  
    dialect = csv.Sniffer().sniff(file.read(2048))
    file.open() # seek to 0
    
    reader = csv.reader(file,dialect=dialect) 
    
  2. 当文件使用CR Linebreaks时,无法识别它们,或者我得到:new-line character seen in unquoted field - do you need to open the file in universal-newline mode?。但是InMemoryUploadedFile已经是一个打开的文件对象。

  3. 我的问题与此问题非常相似,但针对第1点提到的解决方案对我不起作用(因为您可以看到我的代码非常相似)并且第2点根本没有得到回答:

    Proccessing a Django UploadedFile as UTF-8 with universal newlines

0 个答案:

没有答案