在我的 django 应用程序中,用户可以上传他们的 csv 文件以将数据导入 django。它适用于 CLRF unicode 文件。
但是有两个问题:
当文件未使用 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)
当文件使用 CR 换行符时,它们无法识别或我得到:
new-line character seen in unquoted field - do you need to open the file in universal-newline mode?
. 但InMemoryUploadedFile
它已经是一个打开的文件对象。
我的问题与这个问题非常相似,但第 1 点提到的解决方案对我不起作用(您可以看到我的代码非常相似)并且第 2 点根本没有得到回答: