繁体   English   中英

Python / Django:如何将utf-16 str字节转换为unicode?

[英]Python/Django: How to convert utf-16 str bytes to unicode?

研究员,

我无法解析使用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. 现在 ,我想像“ 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM