[英]Python/Django: How to convert utf-16 str bytes to unicode?
研究员,
我无法解析使用Django表单提交的unicode文本文件。 以下是我执行的快速步骤:
上传了一个文本文件(编码:utf-16)(文件内容: Hello World 13
)
在服务器端,使用filename = request.FILES['file_field']
接收文件
逐行: for line in filename: yield line
type(filename)
给我<class 'django.core.files.uploadedfile.InMemoryUploadedFile'>
type(line)
是<type 'str'>
print line
: '\\xff\\xfeH\\x00e\\x00l\\x00l\\x00o\\x00 \\x00W\\x00o\\x00r\\x00l\\x00d\\x00 \\x001\\x003\\x00'
codecs.BOM_UTF16_LE == line[:2]
返回True
现在 ,我想像“ Hello World 13”一样重新构造unicode或ascii字符串,以便可以从行中解析整数。
这样做的最丑陋的方法之一是使用line[-5:]
(= '\\x001\\x003\\x00'
)进行检索,从而使用line[-5:][1]
, line[-5:][3]
。
我相信必须有更好的方法来做到这一点。 请帮忙。
提前致谢!
使用codecs.iterdecode()
快速解码对象:
from codecs import iterdecode
for line in iterdecode(filename, 'utf16'): yield line
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.