0

Python を使用して、utf-8 でエンコードされていないデータ (具体的には shift-jis) をクエリ文字列を介して URL に転送する必要があります。どのようにデータを転送すればよいですか? 引用しますか?utf-8 でエンコードしますか?

ありがとう

4

3 に答える 3

4

クエリ文字列パラメーターはバイトベースです。IRI-to-URI および型指定された非 ASCII 文字は通常 UTF-8 を使用しますが、そのエンコーディングで独自のパラメーターを送信または受信することを強制するものは何もありません。

したがって、Shift-JIS (実際には通常、そのエンコーディングの Windows 拡張である cp932) の場合:

foo= u'\u65E5\u672C\u8A9E' # 日本語
url= 'http://www.example.jp/something?foo='+urllib.quote(foo.encode('cp932'))

Python 3 では、 quote 関数自体でそれを行います。

foo= '\u65E5\u672C\u8A9E'
url= 'http://www.example.jp/something?foo='+urllib.parse.quote(foo, encoding= 'cp932')
于 2009-11-01T15:58:35.657 に答える
1

クエリ文字列はバイトの文字列であるため、ユニコードがこれにどのような関係があるのか​​ わかりません。urllibの引用関数を使用してプレーン文字列を引用すると、クエリ文字列内で渡すことができます。

于 2009-11-01T13:59:33.947 に答える
0

»クエリ文字列« とは、のような HTTP GET を意味しますhttp:/{URL}?data=XYZか?

オプションとして、代替文字をbase64.b64encode使用して URL セーフにすることで、持っているデータをエンコードします。ここ-_を参照してください。

于 2009-11-01T14:00:57.970 に答える