버전 : 파이썬 2.7.3파이썬 요청 인코딩 POST 데이터
다른 라이브러리 : 파이썬 요청 1.2.3, jinja2 (2.6)
나는 포럼에 데이터를 제출하는 스크립트를 가지고 문제입니다 ASCII 문자가 아닌 문자는 쓰레기로 표시됩니다. 예를 들어 André Téchiné와 같은 이름이 André © Tin Chin ©으로 나옵니다. 여기
데이터가 제출 방법은 다음과 같습니다
1) 데이터가 처음 그래서 같은 UTF-8로 인코딩 된 CSV 파일에서로드됩니다
entries = []
with codecs.open(filename, 'r', 'utf-8') as f:
for row in unicode_csv_reader(f.readlines()[1:]):
entries.append(dict(zip(csv_header, row)))
unicode_csv_reader 파이썬 CSV 문서 페이지의 하단에서입니다 : http://docs.python.org/2/library/csv.html
인터프리터에 항목 이름을 입력하면 이름이 u'Andr\xe9 T\xe9chin\xe9'
으로 표시됩니다. 내가 렌더링 된 변수를 작성하는 경우, u'Andr\xe9 T\xe9chin\xe9'
이제 : 다시 내가 인터프리터에서 렌더링 이름을 입력하면
tpl = tpl_env.get_template(u'forumpost.html')
rendered = tpl.render(entries=entries)
은 내가 볼 같은 :
2) 다음으로 나는 jinja2를 통해 데이터를 렌더링
with codecs.open('out.txt', 'a', 'utf-8') as f:
f.write(rendered)
하지만 포럼에 보내야합니다 :이 같은 파일 이름이 올바르게 표시
POST 요청 코드에서3) 내가 가진 :
params = {u'post': rendered}
headers = {u'content-type': u'application/x-www-form-urlencoded'}
session.post(posturl, data=params, headers=headers, cookies=session.cookies)
세션은 요청의 세션입니다.
그리고 이름이 포럼 게시물에 표시되지 않습니다.가 rendered.encode로 렌더링
- 생략 헤더 : 나는 다음과 같은 시도 모든 %의 XY)
내가 입력하면 rendered.encode는 ('UTF-8') 나는 다음을 참조는 :
'Andr\xc3\xa9 T\xc3\xa9chin\xc3\xa9'
어떻게 문제를 해결할 수
? 감사.unicode(my_string_variable, "utf8")
또는 디코딩 및 인코딩 : UTF-8로 디코딩하는
는 "문제가 표시 유물 즉 아닙니다 확인 잘못 표시 값이 올바른지 하지만 잘못 표시됩니다. "- 감사합니다. 그것이 문제이다! 불행히도 공개 포럼이고 기본 인코딩을 변경할 수 없습니다. 그것은 iso-8859-1 인코딩으로 응답합니다. rendered.encode ('iso-8859-1')를 사용할 수 있습니까? 감사. – TheMagician
헤더에서 문자 세트를 설정하려고 시도했습니다. – jfs
작동하지 않았습니다. – TheMagician