1

在我的 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 换行符时,它们无法识别或我得到:new-line character seen in unquoted field - do you need to open the file in universal-newline mode?. 但InMemoryUploadedFile它已经是一个打开的文件对象。

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

使用通用换行符将 Django UploadedFile 处理为 UTF-8

4

0 回答 0