Python3-URL编码与解码_jia666666的博客-程序员宅基地_python3 url解码

技术标签: 踩坑日记  python3  GBK  UTF-8  编码转换  url编码  

代码示例
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Author  : jia666
# Time    : 2021/2/22 9:23

from urllib.parse import quote,unquote

str = "基层表编码"
#TODO 1 utf-8编码
str_utf=str.encode('utf-8') #默认utf-8,这步,不需要即可
print('utf-8编码:'+quote(str_utf))
print('默认编码:'+quote(str))
#细心的你会发现,上面得到的结果相同
#解码,默认utf-8
print('默认解码:'+unquote(quote(str_utf)))

#TODO 2 GBK编码
str_gbk = str.encode("GBK") #指定GBK编码,可以将utf-8编码的汉字转换为GBK编码
print('GBK编码:'+quote(str_gbk))   # #可以比较,GBK编码后的URL编码与UTF-8编码后的字符不一样,同样,解码也不一样
print('utf-8编码:'+quote(str_utf))
print("GBK编码-指定GBK解码:"+unquote(quote(str_gbk),encoding='GBK'))
print("GBK编码-默认utf-8解码:"+unquote(quote(str_gbk)))

结果输出
"""
utf-8编码:%E5%9F%BA%E5%B1%82%E8%A1%A8%E7%BC%96%E7%A0%81
默认编码:%E5%9F%BA%E5%B1%82%E8%A1%A8%E7%BC%96%E7%A0%81
默认解码:基层表编码
GBK编码:%BB%F9%B2%E3%B1%ED%B1%E0%C2%EB
utf-8编码:%E5%9F%BA%E5%B1%82%E8%A1%A8%E7%BC%96%E7%A0%81
GBK编码-指定GBK解码:基层表编码
GBK编码-默认utf-8解码:���������
"""
encodeURIComponent编码:会对特殊符号进行编码
特殊符号:;/:@&=+$,# %
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Author  : jia666
# Time    : 2021/7/12 11:37
"python3 进行encodeURIComponent编码"
import execjs
def quote(string):
    js_code = "encodeURIComponent('{}')".format(string)
    ctx = execjs.compile(js_code)
    results = ctx.eval(js_code)
    return results


if __name__ == '__main__':
    content = 'c001002Afhtmlkda5fcefa-792c-4816-913c-7fd7ab5ffe08-n41624583468117keyword%E6%8A%8A%E6%9C%AA%E6%9D%A5%E7%82%B9%E4%BA%AEs1626053383uMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36/220001v3.18.4';
    print(quote(content))
注意
"""
编码格式要与解码格式要一致,否则会出现乱码,默认编码解码格式为UTF-8
在对网页中的url编码进行解码时,
优先尝试utf-8,若出现乱码,
尝试GBK解码
"""
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/jia666666/article/details/114387154

智能推荐

Mac 下 TensorFlow配置_xianglingchuan的博客-程序员宅基地

Python版本: 2.7.10 Mac os版本: 10.12.31、Python安装Python安装: brew install python 查看Python版本: (demoTensorflow) XLC-2:demoTensorflow xianglingchuan$ python -V Python 2.7.10Pip 安装: sudo easy_install

Start_哒哒哒哒玲的博客-程序员宅基地

心血来潮想要尝试一下写博客,希望通过博客记录下想记录的东西,可能是代码,也可能是喜欢的人事物。冲鸭!为了成为一名优秀的程序员而努力!...

洛谷P1130-红牌(DP)_张起灵-小哥的博客-程序员宅基地

题目描述:某地临时居民想获得长期居住权就必须申请拿到红牌。获得红牌的过程是相当复杂 ,一共包括N个步骤。每一步骤都由政府的某个工作人员负责检查你所提交的材料是否符合条件。为了加快进程,每一步政府都派了M个工作人员来检查材料。不幸的是,并不是每一个工作人员效率都很高。尽管如此,为了体现“公开政府”的政策,政府部门把每一个工作人员的处理一个申请所花天数都对外界公开。为了防止所有申请人都到效率高的工作人员去申请。这M×N个工作人员被分成M个小组。每一组在每一步都有一个工作人员。申请人可以选择任意一个小组

SQL Server 数据库数据文件、日志文件剩余可用空间不足处理方法。_南墓ii的博客-程序员宅基地_数据库可用空间不足怎么办

步骤一:备份数据库当系统运行时有功能提示类似“因为 'PRIMARY' 文件组已满。请删除不需要的文件、删除文件组中的对象、将其他文件添加到文件组或为文件组中的现有文件启用自动增长,以便增加可用磁盘空间”的系统提示时,我们就需要调整数据可文件的初始大小和自增长设置。 在做这些操作前,先关闭系统所有服务,随后通过打开SQL数据库管理工具(开始-搜索-如下图)双击打开后,连接到数据库 进入数据库主控台在左侧一次展开数据库(如下图)在红框区域选中要处理的数据库,右键->任务->备份按箭..

基于JZ2440实现驱动互斥操作以及阻塞非阻塞操作_年纪青青的博客-程序员宅基地

实现同一驱动不能被同时打开思路很简单,设置一个变量,打开时减一,如果另外程序再将其打开,数值变化,就并不能打开。下面看伪代码static int canopen=1;int xxx_open(){ if(--canopen!=0) { return -1; }else { 正常打开; }}void xx...

自动驾驶中图像与点云融合的深度学习研究综述_dxzysk的博客-程序员宅基地

摘要——自动驾驶汽车在过去几年中经历了快速发展。然而,由于复杂和动态驾驶环境的性质,实现完全自主并非易事。因此,自动驾驶汽车配备了一套不同的传感器,以确保强大、准确的环境感知。特别是相机-激光雷达融合正在成为一个新兴的研究主题。然而,到目前为止,还没有针对基于深度学习的相机-激光雷达融合方法的批判性评论。为了弥合这一差距并激发未来的研究,本文致力于回顾最近利用图像和点云的基于深度学习的数据融合方法。这篇综述简要概述了图像和点云数据处理的深度学习。随后在深度补全、目标检测、语义分割、跟踪和在线交叉传感器校准方

随便推点

C# Unicode编码 自动处理BOM头_Aaron.lqy的博客-程序员宅基地_c# unicode

软件安装需要安装Notepad++(或SublineText)等相关软件查看或修改编码格式,方便学习。本文使用的是Notepad++GB2312的局限性GB是"国标"二字的拼音简称,GB2312是最早的国标码。GB2312里面收录了6763个汉字,其中一级汉字3755个,二级汉字3008个,同时收录了包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的682个字符。GB2312收录的6763个汉字是简体中文,不是繁体中文,能够表示日常用语,而某些古诗文则不能用GB2312来

JDK1.8关于List的扩容大小实现_好大的月亮的博客-程序员宅基地_list扩容大小

List在工作中是很常用的一个集合它有3个构造方法public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable{ // 构建一个初始容量是10的ArrayList...

比特币为日本GDP贡献0.3%增长率_区块链铅笔的博客-程序员宅基地

点击上方“蓝色字”可关注我们!暴走时评:在刚刚过去的2017年间,日本对比特币采取了一系列积极措施,不仅承认其合法地位,还开始逐步部署相关的监管框架。这种情况使得日本已成为全球比特币交易市场最为重要的参与者之一,并且野村证券最近通过分析指出持有比特币帮助日本的GDP增长了0.3%,对日本经济的发展有着一定的积极影响。作者:William Suberg    翻译:Ina日本金融巨头野村证券的两名分

Memcached常用命令及使用说明_crazy__chen的博客-程序员宅基地

一、存储命令存储命令的格式:12 参数说明如下:set/add/replace查找关键字客户机使用它存储关于键值对的额外信息该数据的存活时间,0表示永远存储字节数存储的数据块(可直接理解为key-value

封装 smw0 下载模板_Bitter、的博客-程序员宅基地

参数:IV_OBJID TYPE WWWDATA-OBJID SAP WWW 网关对象名IV_WINDOW_TITLE TYPE STRING IV_FILENAME TYPE STRING IV_FILE_FILTER TYPE STRING value( IV_ISOPEN ) TYPE BOOLEAN OPTIONAL 布尔变量(X= 真,-= 假,空格 = 未知)...

ssh连接虚拟机中mysql_用SSH连接Vmware redhat虚拟机_卓鼎天的博客-程序员宅基地

我在winxp的虚拟机上装了一个redhat Enterpirse Linux 4的系统,winxp的ip为192.168.10.1,redhat的ip为192.168.10.130,使用NAT方式连接,两个ip互相ping都是正常的,但是,我在winxp下通过ssh连接虚拟机的ubuntu,连接失败。从网上搜了好多攻略,用了大概两天的时间获知了一些东西,但是并没有完全解决我的问题,现在问题解决了...

推荐文章

热门文章

相关标签