来自字符串的URLEncoding

时间:2014-11-02 19:20:09

标签: python

我熟悉urlencode,它编码参数字典。如何将以下字符串编码为url-safe字符串?

s =     'http://google.com/search?q=' 
     +  'パイレーツ・オブ・カリビアン/呪われた海賊たち(日本語吹替版)' 
     + ' ' 
     + 'site:imdb.com/title'

urlencoded_str = ?

2 个答案:

答案 0 :(得分:1)

这是一种可能性(编码行是告诉Python文件的编码):

# vim: encoding=utf-8

import urllib

base_url = 'http://google.com/search'
params = dict(
    q=('パイレーツ・オブ・カリビアン/呪われた海賊たち(日本語吹替版)'
       + ' site:imdb.com/title'))

query = urllib.urlencode(params)
print base_url + '?' + query

要获得更好的解决方案,请查看以下问题:urllib.urlencode doesn't like unicode values: how about this workaround?

答案 1 :(得分:1)

我不是100%肯定你想要达到的目标,但也许是这样的:

#!coding: utf-8
from urllib import quote

s = 'http://google.com/search?q={}site:wikipedia.org'

escape_me = 'パイレーツ・オブ・カリビアン/呪われた海賊たち(日本語吹替版) '

urlencoded_str = s.format(quote(escape_me))