2006年10月27日 星期五 23:44
刚才搜索了以前的邮件,还是没能够解决这个小问题: 我希望能够在程序中把这样的URL: http://www.test.org/中文/测试.html 转换成这样: http://www.test.org/%E4%B8%AD%E6%96%87/%E6%B5%8B%E8%AF%95.html 使用urllib.quote进行转换时结果是这样的: http%3A//www.test.org/%E4%B8%AD%E6%96%87/%E6%B5%8B%E8%AF%95.html 怎么会把 / 也给转换了呢?同样URL中的 & ? 等也会被转换。 对这个问题不是很理解,还在继续实验中。 -- I like Python & Linux. Blog: http://recordus.cublog.cn -------------- next part -------------- An HTML attachment was scrubbed... URL: http://python.cn/pipermail/python-chinese/attachments/20061027/7a998d3d/attachment.html
2006年10月27日 星期五 23:49
笔误,是urllib.quote把 : 给转换了 2006/10/27, Xupeng Yun <recordus at gmail.com>: > > 刚才搜索了以前的邮件,还是没能够解决这个小问题: > 我希望能够在程序中把这样的URL: > http://www.test.org/中文/测试.html > 转换成这样: > http://www.test.org/%E4%B8%AD%E6%96%87/%E6%B5%8B%E8%AF%95.html > 使用urllib.quote进行转换时结果是这样的: > http%3A//www.test.org/%E4%B8%AD%E6%96%87/%E6%B5%8B%E8%AF%95.html > 怎么会把 / 也给转换了呢?同样URL中的 & ? 等也会被转换。 > > 对这个问题不是很理解,还在继续实验中。 > -- I like Python & Linux. Blog: http://recordus.cublog.cn -------------- next part -------------- An HTML attachment was scrubbed... URL: http://python.cn/pipermail/python-chinese/attachments/20061027/f65d2819/attachment.html
2006年10月28日 星期六 00:11
最后,我选择了把中文提取出来,逐个quote以后再替换: url = 'http://www.test.org/中文/测试.html' pattern = u'[\u4e00-\u9fa5]+'.encode('utf8') ret = re.findall(p, url) for word in ret: url = url.replace(word, quote(word.decode('utf8').encode('gbk'))) 不知道有没有好一些的方法 -- I like Python & Linux. Blog: http://recordus.cublog.cn -------------- next part -------------- An HTML attachment was scrubbed... URL: http://python.cn/pipermail/python-chinese/attachments/20061028/0902a756/attachment.htm
2006年10月28日 星期六 10:39
自己写一个函数就行了。回头再琢磨库的使用方法。 -- GoogleTalk: qcxhome at gmail.com MSN: qcxhome at hotmail.com My Space: tkdchen.spaces.live.com BOINC: boinc.berkeley.edu 中国分布式计算总站: www.equn.com
2006年10月28日 星期六 11:28
俺写的一段代码可以完成你要的功能 #coding=gbk import urllib import urlparse url = 'http://www.test.org/中文/测试.html' scheme, netloc, url, query, fragment = urlparse.urlsplit(url) url = urllib.quote(url) url = urlparse.urlunsplit((scheme, netloc, url, query, fragment)) print url
2006年10月28日 星期六 12:07
2006/10/28, 3751 <lwm3751 at gmail.com>: > > 俺写的一段代码可以完成你要的功能 > #coding=gbk > import urllib > import urlparse > url = 'http://www.test.org/中文/测试.html' > scheme, netloc, url, query, fragment = urlparse.urlsplit(url) > url = urllib.quote(url) > url = urlparse.urlunsplit((scheme, netloc, url, query, fragment)) > print url > 嗯,这个方法比我的好。 -- I like Python & Linux. Blog: http://recordus.cublog.cn -------------- next part -------------- An HTML attachment was scrubbed... URL: http://python.cn/pipermail/python-chinese/attachments/20061028/306fba94/attachment.html
2006年10月28日 星期六 12:25
想了一下还应该加上以下两句才对 query = urllib.quote(query) fragment = urllib.quote(fragment)
2006年10月28日 星期六 14:20
又仔细看了一下urllib.quote的doc string,终于弄明白这个函数怎么用了,可能昨天晚上太晚脑子迷糊了愣是没看懂,呵呵。是这样: quote的原型是:quote(s, safe='/'), 因此,调用时把不需要转换的字符的列表作为safe参数传入即可: >>> import string >>> url = 'http://www.test.org/中文/测试.html' >>> print urllib.quote(url, string.punctuation) http://www.test.org/%E4%B8%AD%E6%96%87/%E6%B5%8B%E8%AF%95.html 不使用safe参数默认只有 / 被保留不quote,就出现了昨天让我困惑的结果,呵呵。 -- I like Python & Linux. Blog: http://recordus.cublog.cn -------------- next part -------------- An HTML attachment was scrubbed... URL: http://python.cn/pipermail/python-chinese/attachments/20061028/966f7491/attachment.html
2006年10月30日 星期一 10:50
URL编码最好的办法还是将不要将整个URL进行编码,应将各部分先分解,然后编码后再合 并。 ----- Original Message ----- 发件人: Xupeng Yun 收件人: python-chinese在lists.python.cn 发送时间: 2006年10月28日 14:20 主题: Re: [python-chinese] 一个URL编码的问题 又仔细看了一下urllib.quote的doc string,终于弄明白这个函数怎么用了,可能昨天晚上太晚脑子迷糊了愣是没看懂,呵呵。是这样: quote的原型是:quote(s, safe='/'), 因此,调用时把不需要转换的字符的列表作为safe参数传入即可: >>> import string >>> url = 'http://www.test.org/中文/测试.html' >>> print urllib.quote(url, string.punctuation) http://www.test.org/%E4%B8%AD%E6%96%87/%E6%B5%8B%E8%AF%95.html 不使用safe参数默认只有 / 被保留不quote,就出现了昨天让我困惑的结果,呵呵。 -------------- 下一部分 -------------- 一个HTML附件被移除... URL: http://python.cn/pipermail/python-chinese/attachments/20061030/f440060f/attachment-0001.html
2006年10月30日 星期一 13:08
2006/10/30, Gavin <gavin at sz.net.cn>: > > > URL编码最好的办法还是将不要将整个URL进行编码,应将各部分先分解,然后编码后再合 > 并。 > 在我弄明白quote函数的用法之前我就是把URL分解、编码后再合并的,不过后来发现只用quote就可以搞定了:) -- I like Python & Linux. Blog: http://recordus.cublog.cn -------------- next part -------------- An HTML attachment was scrubbed... URL: http://python.cn/pipermail/python-chinese/attachments/20061030/2202ead8/attachment.html
Zeuux © 2025
京ICP备05028076号