今天在分析nginx日志的时候,发现用户的请求中有如下格式的字符:

\xB6\xF1\xD2\xE2

而大部分用户提交的请求则是如下形式:

%E4%BC%98%E8%A1%A3%E5%BA%93

对于前者,使用以下python代码进行解码:

def decode_query_str():

str = b'\xB6\xF1\xD2\xE2'

print("{} ==》 {}".format(str, str.decode('GBK')))

执行结果:

b'\xb6\xf1\xd2\xe2' ==》 恶意

发生这种情况,可能的原因如下:

IE浏览器设置中有一个选项:”以UTF-8 形式发送URL路径”,当该选项有效时,IE将会对特殊字符进行UTF-8编码,同时进行URL编码。如果该选项无效,则使用默认编码”GBK”,并且不进行 URL编码。但是,对于URL后面的参数,则总是不进行编码,相当于UTF-8选项无效。比如: “中文.html?a=中文”, 当UTF-8选项有效时,将发送链接”%e4%b8%ad%e6%96%87.html?a=/x4e/x2d/x65/x87″; 而UTF-8选项无效时,将发送链接”/x4e/x2d/x65/x87.html?a=/x4e/x2d/x65/x87″。 在此注意,不管此选项是否有勾选,后面的参数都没有改变,改变的仅仅是地址。

对于后者,通过urldecode即可得到解码之后的数据,python代码如下:

def str_two():

str = '恶意'

print(urllib.parse.quote(str))

str = '%E6%81%B6%E6%84%8F'

print(urllib.parse.unquote(str))

该日志未加标签

python设置字符编码_python字符编码问题一则相关推荐

  1. 字符编码在python中的处理_python 字符编码处理问题总结

    Python中常常遇到这种字符编码问题,尤其在处理网页源代码时(特别是爬虫中): UnicodeDecodeError: 'XXX' codec can't decode bytes in posit ...

  2. 字符编码在python中的处理_Python 字符编码处理总结

    Python中经常遇到这样那样的字符编码问题,尤其在处理网页源码时(特别是爬虫中): UnicodeDecodeError: 'XXX' codec can't decode bytes in pos ...

  3. python 读中文乱码_python字符乱码的解决小结

    引言 无论学习什么程序语言,字符串这种数据类型总是着有非常重要.然而最近在学习python这门语言,想要显示中文,总是出现各种乱码.于是在网上查了很多资料,各说纷纭,我也尝试了许多的方法,有时候可以正 ...

  4. python的unicode编码_python unicode编码

    遇到编码问题,查阅了一些资料,有了一些理解,简单记录下. 首先,Unicode有个通用字符集 其次,每个字符有个编号(编码,即code points),规范为U+hhhh,其中每个h代表一个十六进制数 ...

  5. python 字符图_python 字符画

    教你利用Python把图片转字符画!代码哆啦A梦你见过嘛? 图片转字符画的关键是把图片的灰度值与自定义的字符集之间建立映射关系,不同区间的灰度值对应不同的字符,之后将图片每一个像素对应的字符打印出来, ...

  6. python中codecs模块_python自然语言编码转换模块codecs介绍

    python对多国语言的处理是支持的很好的,它可以处理现在任意编码的字符,这里深入的研究一下python对多种不同语言的处理. 有一点需要清楚的是,当python要做编码转换的时候,会借助于内部的编码 ...

  7. python二进制转换为转义字符_Python字符与进制转换

    Python字符与进制转换 0b / 0B --> 二进制字符前缀 0o / 0O --> 八进制字符前缀 0x / 0X --> 十六进制字符前缀 ascii(object) 就 ...

  8. python设置环境变量_Python设置环境变量

    python设置环境变量 We can set an environment variable in Python using os module. Python os module environ ...

  9. python字符串编码_Python字符串编码答疑

    Python 2中的字符串分类 在Python 2中字符串,有两个类型,一个是str,一个是unicode.str可以理解为ASCII的字符列表,说白了,只能存储ASCII字符,如果赋个中文值,会报错 ...

最新文章

  1. R语言使用persp函数绘制三维图像实战(3D):自定义3D图、图像旋转、添加轴标签
  2. CSP-CCF 201712-2游戏(C++实现)
  3. 多协议标签的MPLS发布与管理_MPLS
  4. OpenCV:在imshow() 之前使用namedWindow() 的必要性讨论?
  5. 视窗宽高offset、client、scroll
  6. windows当代理服务器-CCProx的使用
  7. 【机器学习】主元分析(PCA)以及与SVD的区别联系
  8. 计算机工程信息学院严翔,严翔校长第六次大师课
  9. oracle 查询时间点数据_oracle统计时间段内每一天的数据(推荐)
  10. Python | 查找字符串中每个字符的频率
  11. 用Markdown写博客快速入门
  12. 【SQL】血缘解析 SQL parser 工具介绍
  13. Github-PAT(Personal Access Token)
  14. 微型计算机主要安装的部件是,微型计算机主板上安装的主要部件
  15. Linux内核入门(五)——必要的硬件知识
  16. 【基于JXTA的P2P应用开发】
  17. VMware解决黑屏
  18. iPhone上塔罗牌测试软件,塔罗牌占卜:测Ta对你是用情至深还是一时兴起?准到没朋友!...
  19. 一元享移动怎么样_移动终于良心了?月费6元享46G流量,网友:后悔携号转网了!...
  20. JavaScript连缀

热门文章

  1. 采用cookie简单实现文章顶/踩功能
  2. H264/H265之NALU结构(三)
  3. Linux meson + ninja编译安装源码(八)
  4. Mac/Linux使用fcrackzip
  5. 微信公众号之生成带参数的二维码
  6. Ubuntu16.04编译Android5.1源码
  7. mysql数据库undo日志恢复_MySQL的undo/redo日志和binlog日志,以及2PC
  8. python画反比例函数_反比例光滑支撑向量机
  9. Java hook qpi_Java中内部类对象的创建以及hook机制
  10. windows系统bat批处理 arp扫描一个网段的IP地址