0

同学们,

我无法解析使用 django 表单提交的 unicode 文本文件。以下是我执行的快速步骤:

  1. 上传了一个文本文件(编码:utf-16)(文件内容Hello World 13:)

  2. 在服务器端,使用接收文件filename = request.FILES['file_field']

  3. 逐行进行:for line in filename: yield line

  4. type(filename)给我<class 'django.core.files.uploadedfile.InMemoryUploadedFile'>

  5. type(line)<type 'str'>

  6. print line'\xff\xfeH\x00e\x00l\x00l\x00o\x00 \x00W\x00o\x00r\x00l\x00d\x00 \x001\x003\x00'

  7. codecs.BOM_UTF16_LE == line[:2]返回True

  8. 现在,我想重新构造 unicode 或 ascii 字符串,如“Hello World 13”,以便我可以解析行中的整数。

这样做的最丑陋的方法之一是使用line[-5:](= '\x001\x003\x00') 检索,从而使用line[-5:][1],构造line[-5:][3]

我相信必须有更好的方法来做到这一点。请帮忙。

提前致谢!

4

1 回答 1

3

用于codecs.iterdecode()动态解码对象:

from codecs import iterdecode

for line in iterdecode(filename, 'utf16'): yield line
于 2013-08-23T22:18:19.437 回答