首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Django上传的文件中处理UTF-16

问在Django上传的文件中处理UTF-16
EN

Stack Overflow用户
提问于 2009-12-11 06:02:39
回答 1查看 1.3K关注 0票数 1

在我的Django webapp中,用户可以在一个地方上传一个文本文件,其中每一行都包含一个字符串,该字符串将被操作-该文件没有存储在服务器上或类似的地方。

我的代码如下所示:

代码语言:javascript
复制
roFile = request.FILES['uploadFileName']
ros = roFile.read().strip()
ros = ros.split('\n')
ros = [t.strip() for t in ros]

到目前为止,这已经成功了。今天,我有一个用户上传了一个文件,这导致了问题。在Django中使用这些字符串会生成以下错误:

代码语言:javascript
复制
ProgrammingError: ERROR: invalid byte sequence for encoding "UTF8":0xff

用户告诉我,他将文件保存为UTF-16。

在python本身中,我可以执行以下操作:

代码语言:javascript
复制
import codecs
from django.utils.encoding import *
fo = codecs.open('filename', 'r', 'utf-16')
zz = fo.readlines()

然后,这些值似乎是可管理的,但不是通过文件上传。

为了处理不同的字符集,在request.FILES中处理数据的适当方式是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-12-11 06:25:37

第一部分没有回答您的问题(我对django一无所知);我只想指出,当您提供您所说的工作或不工作的代码时,您应该复制/越过您运行的实际代码;不要从内存中键入它。

这段代码:

代码语言:javascript
复制
import codecs
from django.utils.encoding
f = codecs.open('filename', 'r', 'utf-16')
zz = fo.readlines()

有两个问题,看起来应该是:

代码语言:javascript
复制
import codecs from django.utils.encoding
fo = codecs.open('filename', 'r', 'utf-16')
zz = fo.readlines()

关于你的问题:谷歌(“django request files")似乎提供了一些有用的线索;你调查过它们吗,包括this?其中一个线索是,文件上传似乎在后来的django版本中得到了改进;您使用的是哪个版本?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1884399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档