2009-11-01 4 views
0

Python을 사용하여 쿼리 문자열을 통해 utf-8로 인코딩되지 않은 데이터 (특히 shift-jis)를 URL로 전송해야합니다. 데이터는 어떻게 전송해야합니까? 제품 견적을 제출 하시겠습니까? utf-8로 인코딩 하시겠습니까?utf-8 인수가 아닌 URL을 여는 방법

감사

+3

유니 코드가 아닌 인코딩, 그래서 모든 URL이 아닌 유니 코드 인수가 있습니다. 나는 비 utf-8을 의미한다고 생각합니다. –

+0

수정에 대한 감사 - – hoju

답변

4

쿼리 문자열 매개 변수는 바이트 기반입니다. IRI-to-URI 및 형식화 된 비 ASCII 문자는 일반적으로 UTF-8을 사용하지만 인코딩에서 사용자 자신의 매개 변수를 전송하거나 수신하도록 강요하는 것은 없습니다.

그래서 시프트-JIS (실제로는 일반적으로 cp932, 해당 인코딩의 윈도우 확장)에 대한 :

는 인용 함수 자체에서 할 파이썬 3에서
foo= u'\u65E5\u672C\u8A9E' # 日本語 
url= 'http://www.example.jp/something?foo='+urllib.quote(foo.encode('cp932')) 

:

foo= '\u65E5\u672C\u8A9E' 
url= 'http://www.example.jp/something?foo='+urllib.parse.quote(foo, encoding= 'cp932') 
1

쿼리 문자열 바이트의 문자열이기 때문에 나는이와 무슨 상관이 유니 코드 모른다. urllib의 인용 함수를 사용하여 일반 문자열을 인용 문자열 내에 전달할 수 있습니다.

0

»쿼리 문자열로«과 같은 HTTP GET을 의미합니까?

base64.b64encode을 통해 데이터를 인코딩 한 경우 -_을 대체 문자로 사용하여 옵션으로 URL을 안전하게 사용할 수 있습니다. here을 참조하십시오.

+0

예 - GET 매개 변수 – hoju

+0

Base64encode? URL 인코딩해야합니다! http://en.wikipedia.org/wiki/Percent-encoding – BalusC

+0

맛의 문제는 아닙니까? 임의의 데이터에 대해서는 Base64를 사용합니다. 텍스트 콘텐츠의 경우 위의 편집 된 잘못된 대답보다 혼란스럽지 않지만 지금은 다시 읽습니다. – mkluwe

관련 문제