我希望这应该很容易。我有一个网址:
http://uploads4.wikiart.org/images/marc-chagall/kopeikin-and-napol%C3%A9on.jpg
保存到json文件中,代码如下:
paintings = get_all_paintings(marc_chagall)
with open('chagall.json', 'w') as fb:
x = json.dump(paintings, fb)
在该文件中,URL变为:
^{pr2}$我可以使用以下代码获取原始的、可用的、百分比编码的URL:
p = u'http://uploads4.wikiart.org/images/marc-chagall/kopeikin-and-napol\xe9on.jpg'
p = urllib.quote(p.encode('utf8'), safe='/:')
print repr(p)
> 'http://uploads4.wikiart.org/images/marc-chagall/kopeikin-and-napol%C3%A9on.jpg'
现在是棘手的部分。我想要一根绳子:
http://uploads4.wikiart.org/images/marc-chagall/kopeikin-and-napoléon.jpg
napoléon中的非ascii字符完好无损。这是为了在存储桶中命名,而不是为了其他任何目的。我怎样才能生产这根绳子?在
你已经拥有了:
p
的值已经是该字符串,只是显示方式不同而已。在只需打印unicode值:
不要将Unicode值的python表示与实际值混淆(这是为了便于调试和内省,故意对非ASCII字符使用转义符)。在
打印将值编码到控制台或终端使用的编解码器,前提是Python能够检测到它。我的终端被设置为UTF-8,因此Python将U+00E9 unicode代码点编码为c3a9字节,然后我的终端将其解释为UTF-8并显示
é
。在这一切只意味着已经有了正确的值,但是被调试输出抛出了。在
相关问题 更多 >
编程相关推荐