好吧,我想我要用一组混合的自定义函数:

Encode:使用encodeURIComponent(),然后将斜杠放回。

解码:解码找到的任何%hex值。

下面是我最终使用的更完整的变体(它也能正确处理Unicode):function quoteUrl(url, safe) {

if (typeof(safe) !== 'string') {

safe = '/'; // Don't escape slashes by default

}

url = encodeURIComponent(url);

// Unescape characters that were in the safe list

toUnencode = [ ];

for (var i = safe.length - 1; i >= 0; --i) {

var encoded = encodeURIComponent(safe[i]);

if (encoded !== safe.charAt(i)) { // Ignore safe char if it wasn't escaped

toUnencode.push(encoded);

}

}

url = url.replace(new RegExp(toUnencode.join('|'), 'ig'), decodeURIComponent);

return url;

}

var unquoteUrl = decodeURIComponent; // Make alias to have symmetric function names

注意,如果在编码时不需要“安全”字符(Python中默认为'/'),则可以直接使用内置的encodeURIComponent()和decodeURIComponent()函数。

此外,如果字符串中有Unicode字符(即代码点为128的字符),那么为了保持与JavaScript的encodeURIComponent()的兼容性,Python quote_url()必须是:def quote_url(url, safe):

"""URL-encodes a string (either str (i.e. ASCII) or unicode);

uses de-facto UTF-8 encoding to handle Unicode codepoints in given string.

"""

return urllib.quote(unicode(url).encode('utf-8'), safe)

而unquote_url()将是:def unquote_url(url):

"""Decodes a URL that was encoded using quote_url.

Returns a unicode instance.

"""

return urllib.unquote(url).decode('utf-8')

python3urllib中的quote与encode的区别_Python的urllib.quote()和urllib.unquote()的等效Javascript函数...相关推荐

  1. python中的return和print的区别_python中return和print的区别(详细)

    Huskiesir python最近正在研究.今天,我面临一个问题,那就是,返回和印刷的区别.双方都能输出结果.的区别是什么?闲话少说,看下面的例子.# Code1: def break_words( ...

  2. python中元祖 字典 列表的区别_Python中元祖,列表,字典的区别

    原博文 2016-08-16 15:25 − Python中有3种內建的数据结构:列表.元祖和字典: 1.列表 list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目. 列表中的 ...

  3. python中的字典和类的区别_Python中的 字典和字典数据类型

    字典 1.字典是Python的内建数据类型,我们知道序列是以连续的整数为索引,而字典用关键字作为索引.特别的,关键字必须是不可变类型,常为字符串或者数值. #如果元组中只包含字符串和数字,它可以作为关 ...

  4. python中init和setup有什么区别_python – 为什么setup.py在安装期间运行模块__init__.py?...

    我正在使用setup.py安装包: python setup.py install 我正在安装的软件包中的__init__.py包含一些软件包级别检查,其中一个检查settings.py中是否有可用的 ...

  5. python中列表字典元组之间的区别_python之字典、元组、列表的区别

    1.列表:专门用于存储一串信息,列表用中括号[]定义,数据之间使用逗号,分隔 list_0=['a','b','c'] 列表的特点: 1)可修改.可增加.可删除 2)列表是有序的,可以遍历 3)可以将 ...

  6. python中的字典和类的区别_Python:我应该使用类还是字典?

    我认为每个人的用法对我来说太主观了,所以我只是坚持数字. 我比较了创build和更改字典中的variables,new_style类和new_style类带槽的时间. 这是我用来testing它的代码 ...

  7. python中del和pop有什么区别_Python列表删除元素del、pop()和remove()的区别小结

    前言 在python列表的元素删除操作中, del, pop(), remove()很容易混淆, 下面对三个语句/方法作出解释 del语句 del语句可以删除任何位置处的列表元素, 若知道某元素在列表 ...

  8. java中字符流和字节流的区别_java中字节流和字符流有哪些区别

    java中字节流和字符流的区别有:1.定义不同:2.结尾不同:3.处理方式不同:4.缓冲区不同:5.编码方式不同.字节流默认不使用缓冲区,而字符流使用缓冲区.字节流采用ASCII编码,字符流采用uni ...

  9. python中字符串类型的encode()方法_第五章 Python字符串常用方法详解

    5.1 Python字符串拼接(包含字符串拼接数字) 在 Python中拼接(连接)字符串很简单,可以直接将两个字符串紧挨着写在一起,具体格式为: strname = "str1" ...

最新文章

  1. 【转载】全面理解javascript的caller,callee,call,apply概念(修改版)
  2. 体育与科技丨清华之友体育产业主题论坛成功举行
  3. Vue.js子组件向父组件通信
  4. Android下PopupWindow隐藏及显示(showAtLocation/showAsDropDown)
  5. Android之assets资源
  6. 【KEIL·单片机·扫盲贴】关于ARM单片机程序内存使用情况的细致讨论。
  7. c语言求标准体重答案,C语言标准体重测试程序,请大家帮我看下,我的代码哪错了?...
  8. c swap方法在哪个库里面_swap
  9. 为什么作为开发人员面试完全是胡说八道
  10. Codeforce 记录 Rating
  11. y查询硬盘内存CPU
  12. 闪耀在UNIX传奇往事中的启示,UNIX见证者带你一览究竟
  13. 我的第五个程序 java的JDBC连接mysql数据库 实现输入查询
  14. MasterPage简介
  15. paddle serving
  16. Eclipse切换IDE界面语言
  17. 海量数据解决方案,知多少?
  18. ie显示的html页面乱码,IE10、IE11页面中文乱码解决方案
  19. CentOS 8 中安装 Docker运行yum install docker-ce docker-ce-cli containerd.io报错
  20. 深入学习卷积神经网络(CNN)的原理知识

热门文章

  1. 感知器python代码
  2. 请解释和、|和||的区别?
  3. Linux下远程连接断开后如何让程序继续运行
  4. ubuntu 搜索文件方法(find命令)
  5. python做项目看板_三、使用python数据仓库实现可视化看板
  6. Windows下配置环境变量和需不需要重启?
  7. 一个基于xml的超级orm框架-世界是由懒人创造的。
  8. sqlserver 重置自增Id
  9. DELPHI 指针使用用的一篇好文 收藏
  10. P3 计算机硬件的基本组成