Urllib编码问题:处理来自Latin-1数据库的â字符

1 投票
1 回答
737 浏览
提问于 2025-04-16 01:14

我需要把一个 â 字符转换成可以放到网址里的格式。我是从一个 json 列表中获取一些名字,然后再把它们传递到其他地方。

result = json.load(urllib2.urlopen(LIST_URL), encoding='latin-1')
for item in result:
    name = item["name"]
    print name
    print urllib2.quote(name.lower())

当名字是 Siân 时,这会导致一个 urllib 错误:

Siân
Line 24 - print urllib2.quote(mp_name.lower())
/usr/lib/python2.6/urllib.py -- quote((s=u'si\xe2n', safe='/'))
KeyError(u'\xe2')

请问有没有人能给点建议?

1 个回答

2

quote() 函数需要一个字符串参数,而不是unicode格式的内容。你可以使用 urllib2.quote(name.lower().encode('latin1')),前提是你的网站支持latin1编码。

撰写回答