数字字母,什么编码url参数?
urllib 库中的 quote?
在 Python2.x 中的用法是:
Python3.x 中是
按照标准, URL 只允许一部分 ASCII 字符(数字字母和部分符号),其他的字符(如汉字)是不符合 URL 标准的。
所以 URL 中使用其他字符就需要进行 URL 编码。
URL 中传参数的部分(query String),格式是:
假如你的 name 或者 value 值中有『&』或者『=』等符号,就当然会有问题。所以URL中的参数字符串也需要把『&=』等符号进行编码。
URL编码的方式是把需要编码的字符转化为 %xx 的形式。通常 URL 编码是基于 UTF-8 的(当然这和浏览器平台有关)。
例子:
比如『我』,unicode 为 0x6211, UTF-8 编码为 0xE6 0x88 0x91,URL 编码就是
在 JavaScript 中,提供了 encodeURI 和 encodeURIComponent 两种方法对 URL 进行编码;
Python 的 urllib 库中提供了 quote 和 quote_plus 两种方法。
因为是针对不同场景设计,以上四种方法编码的范围均不相同,比如 quote 除了 -._/09AZaz ,都会进行编码。quote_plus 比 quote 『更进』一些,它还会编码 /
urllib.quote 使用参考:
20.5. urllib
延伸阅读
url加密和解密方案?
package day11.about_url_encoder;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;
public class URLEncoder_URLDecoder_Demo {
public static void main(String[] args) throws UnsupportedEncodingException {
// URLEncoder类:URL的加密类
String str = “高级”;
// gbk的编码两位一组:所以这儿有四组百分号
// str = URLEncoder.encode(str, “gbk”); // %B4%AB%D6%C7
// utf-8的编码三位一组:所以这里有六组百分号
str = URLEncoder.encode(str, “utf-8”); // %E4%BC%A0%E6%99%BA
System.out.println(str);
str = URLDecoder.decode(str, “utf-8”);
System.out.println(str);
// 编码对应:encode
// 解码对应:decode
/*
* 浏览器进行数据的传递和接收都要通过URLDecoder进行编码,解码
* 对应的编码是由html界面所指定的;
*
* 加密和解密构成了基础的会话;
*
* URLDecoder不能解析中文
*
*/
}
}
URL是啥意思?
URL是统一资源定位系统,英文全称为uniform resource locator,是因特网的万维网服务程序上用于指定信息位置的表示方法。它最初是由蒂姆·伯纳斯·李发明用来作为万维网的地址。现在它已经被万维网联盟编制为互联网标准RFC1738。
URL语法
URL通常被写成如下形式:<方案>:<方案描述部分>
一个URL包含了它使用的方案名称(<方案>), 其后紧跟一个冒号,然后是一个字符串(<方案描述部分>),这部分的解释由所使用的方案来决定。
方案名称由一串字符组成。小写字母“a”——“z”,数字,字符加号(“+”),句点(“.”)和连字号(“-”)都可以。方案名称中的大写字母和小写字母一样。(例如:视“HTTP”和“http”一样)。
字符编码
URL是由一串字符组成,这些字符可以是字母,数字和特殊符号。
没有相应的可显示字符:URL只能用US-ASCII字符编码集中的可显示字符表示。
不安全:空格字符,“<”,“>”,“#”,“%”,”{“, “}”, “|”, “”