[英]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.