V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
fnmsd
V2EX  ›  Python

求问 Python 如何进行全部字符的 URL 编码?

  •  
  •   fnmsd · 2017-04-05 18:09:22 +08:00 · 2687 次点击
    这是一个创建于 2583 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如 admin 在用 urllib 的 quote 时还是 admin ,希望能够对非特殊字符也进行 URL 编码,变为%61%64%6D%69%6E

    Google 的好半天没有查到,求高手解答!
    11 条回复    2017-04-06 17:24:49 +08:00
    Kisesy
        1
    Kisesy  
       2017-04-05 18:18:44 +08:00
    你抄一下官方库代码, 自己写个函数把这个限制去掉不就好了, 就几句代码
    jigloo
        2
    jigloo  
       2017-04-05 18:22:26 +08:00   ❤️ 1
    re.sub(r'.', lambda m: '%%%s' % m.group(0).encode('hex').upper(), 'admin')
    Kisesy
        3
    Kisesy  
       2017-04-05 18:25:35 +08:00
    a = b'admin'
    b = ''.join('%{:02X}'.format(x) for x in a)
    print(b)
    Luckyray
        4
    Luckyray  
       2017-04-05 18:34:22 +08:00
    对英文字符也编码的好处或者用处是啥?
    lrxiao
        5
    lrxiao  
       2017-04-05 19:43:30 +08:00
    urllib2.quote
    glasslion
        6
    glasslion  
       2017-04-05 22:07:44 +08:00
    admin ? 你该不会是想通过 url encode 的方式 来搞 sql 防注入之类的 东东吧? 慎之。
    fnmsd
        7
    fnmsd  
    OP
       2017-04-06 17:20:55 +08:00
    @Kisesy 感谢~懒得自己改了,想看看有没有直接能用的,我在 python2.7 中试 format 里的 x 还需要加 ord~
    fnmsd
        8
    fnmsd  
    OP
       2017-04-06 17:22:09 +08:00
    @jigloo 学习了~re 的 sub 还可以这么用
    fnmsd
        9
    fnmsd  
    OP
       2017-04-06 17:22:29 +08:00
    @jigloo 感谢~
    fnmsd
        10
    fnmsd  
    OP
       2017-04-06 17:23:13 +08:00
    @lrxiao 是完全 URL 编码, quote 只编码影响 URL 的特殊字符
    fnmsd
        11
    fnmsd  
    OP
       2017-04-06 17:24:49 +08:00
    @Luckyray 测试用途
    @glasslion 当然不是 绕过注入防护还差不多~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2149 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 02:04 · PVG 10:04 · LAX 19:04 · JFK 22:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.