python urllibでのエンコード処理例
2022-01-03 02:35:56
コピーコード
コードは以下の通りです。
>>> import urllib
>>> data = 'Lijiang'
>>> print data
Lijiang
>>> data
'\xe4\xb8\xbd\xe6\xb1\x9f'
>>> urllib.quote(data)
'%E4%B8%BD%E6%B1%9F'
引き返したいときは?
コピーコード
コードは以下の通りです。
>>> urllib.unquote('%E4%B8%BD%E6%B1%9F')
'\xe4\xb8\xbd\xe6\xb1\x9f'
>>> print urllib.unquote('%E4%B8%BD%E6%B1%9F')
Lijiang
エンコード形式の違いは、urllibの結果ページに影響を及ぼします。Baiduはgbk、googleなどの一般的なサイトはutf8です。そこで、以下のような記述で実現することができます。
コピーコード
コードは以下の通りです。
>>> import sys,urllib
>>> s = 'lijiang'
>>> urllib.quote(s.decode(sys.stdin.encoding).encode('gbk'))
'%C0%F6%BD%AD'
>>> urllib.quote(s.decode(sys.stdin.encoding).encode('utf8'))
'%E4%B8%BD%E6%B1%9F'
>>>
ここでのsys.stdin.encodingは、現在の環境のエンコーディングを読み取るもので、移植性が高く、wintでもxunixでも使用することができます。もちろん、これが嫌ならutf8などの独自の環境エンコーディングに置き換えることができます。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
perl チュートリアル perl チュートリアル集
-
Perlの強力な正規表現の例を解説
-
perl 操作 MongoDB エラー 未定義のシンボル。HeUTF8 解決策
-
スペースがセパレータである場合の perl qw 問題の解決法
-
Perlのハッシュの使い方チュートリアル
-
Perlのハッシュの作成と参照入門
-
[解決済み] Perlで2つの文字列を比較するにはどうしたらいいですか?
-
[解決済み] Perlで配列を比較するにはどうしたらいいですか?
-
[解決済み] Perlで文字列の各単語の最初の文字を大文字にするにはどうすればよいですか?
-
[解決済み] MOSSスクリプトはどのように使うのですか?