2009-12-10 5 views
1

내 Django webapp에서는 사용자가 텍스트 파일을 업로드 할 수 있습니다. 텍스트 파일을 업로드 할 때 각 행에는 조작 할 문자열이 포함되어 있습니다. 파일은 서버 또는 아무것도 저장되지 않습니다. 그런 식으로.Django 업로드 파일에서 UTF-16 처리하기

내 코드는 다음과 같습니다 : 지금까지

roFile = request.FILES['uploadFileName'] 
ros = roFile.read().strip() 
ros = ros.split('\n') 
ros = [t.strip() for t in ros] 

,이 AOK을 일했다. 오늘은 문제를 일으키는 파일을 업로드하는 사용자가있었습니다. 장고에서 이러한 문자열을 사용하면 다음과 같은 오류가 발생

ProgrammingError: ERROR: invalid byte sequence for encoding "UTF8":0xff 

사용자는 자신이 UTF-16로 파일을 저장 한 얘기했다.

import codecs 
from django.utils.encoding import * 
fo = codecs.open('filename', 'r', 'utf-16') 
zz = fo.readlines() 

다음 값을 관리 할 것 같다,하지만 파일 업로드와 :

적절한 파이썬 내에서, 나는 다음을 수행 할 수 있습니다.

요청에 따라 데이터를 처리하는 적절한 방법은 무엇입니까? 파일을 다른 문자 집합을 처리하기 위해 파일?

답변

1

이 첫 번째 부분은 질문에 대답하지 않습니다 (나는 장고에 대해 아무것도 모른다). 나는 당신이 작동하는 코드 또는 작동하지 않는 코드를 제공 할 때 실행 한 실제 코드를 복사하거나 지나쳐야한다고 지적하고 싶다. 그것을 메모리에서 입력하지 마십시오.

이 코드 :

import codecs 
from django.utils.encoding 
f = codecs.open('filename', 'r', 'utf-16') 
zz = fo.readlines() 

은이 문제를 가지고 있으며, 그것이 있어야 다음과 같습니다

import codecs from django.utils.encoding 
fo = codecs.open('filename', 'r', 'utf-16') 
zz = fo.readlines() 

질문에 : 유용한 단서를 제공 할 것으로 보인다 ("장고 요청 파일") 구글; this을 포함하여 조사 했습니까? 하나의 단서 중 하나는 파일 업로드가 이후 버전의 django에서 개선 된 것 같습니다. 어떤 버전을 사용하고 있습니까?

+0

감사합니다. 예, 복사/붙여 넣기가 부족한 것은 당시에 두 개의 연결되지 않은 컴퓨터를 사용했기 때문입니다. 오류가 있지만 수정본이 아니라는 것이 맞습니다. 반영 할 게시물을 편집 할 것입니다. 나는 SO 페이지를 보았습니다. 그 대답을 사용하여 대답을 시도했을 때 문제가 해결 될 가능성이있는 대답을 사용하려고 시도했을 때 약간의 다르게 설정이되어 작동하지 못하게되었습니다. 이 코드를 작동 시키려면 어제 조금은 진화 한 정확한 코드. – geoffjentry

+0

네, 저는 이전 게시물에서 예제를 잘못 적용하고 있다는 점에서 옳았습니다. 지금 일하십시오 .... – geoffjentry

+0

이 문제가 있을지도 모른 다른 사람들의 이익을 위해 해결책이 무엇인지 밝히는 게시를 고려하십시오. django의 버전을 언급하십시오. –

관련 문제