当前位置: 首页 > news >正文

学做简单网站视频教程济源建设网站

学做简单网站视频教程,济源建设网站,什么网站做旅行计划,瑞昌市建设局网站【简介】 最近我要解析一个数据库中间件的日志、这个中间件会在日志中记录SQL发往的后台DB ,执行耗时#xff0c;对应的SQL#xff1b;中间件直接把SQL写到 了日志中去#xff0c;并没有对SQL进行适当的编码转换#xff1b;理想情况下这个也不会有什么问题#xff0c;不幸…  【简介】   最近我要解析一个数据库中间件的日志、这个中间件会在日志中记录SQL发往的后台DB ,执行耗时对应的SQL中间件直接把SQL写到   了日志中去并没有对SQL进行适当的编码转换理想情况下这个也不会有什么问题不幸的是我就面对着这种情况client的发给中间件   的SQL有可能是utf-8也有可能是gbk,也有可能是gb2132所以使用中间件的日志文件用任何一种编码方式都不成正确的解码它      幸运的是我要做的工作只要解决出日志中所涉及到的数据库名和表名就行所以我并不一定要完全解码这个文件。   【复现一下那个中间件写日志的大致逻辑】 以下我会用python代码来描述上面的情况,可以看到对于同一个文件以不同的编码写入了内容 with open(proxy_backup_sql.log,bw) as user_log_hander:user_log_hander.write(192.186.100.10 | 0.012 | select id from tempdb.person where name张三; \n.encode(utf8))user_log_hander.write(192.186.100.10 | 0.012 | select id from tempdb.person where name杨白劳; \n.encode(gbk))      对于上面的情况不管你是用utf-8 还是用gbk打开文件它们会乱码的、     【用什么编码都是不可能正常打开这个文件的】  1、UTF8打开 with open(proxy_backup_sql.log,r,encodingutf8) as proxy_backup_log_handler:for line in proxy_backup_log_handler:print(line,end)Traceback (most recent call last):File main.py, line 22, in modulefor line in proxy_backup_log_handler:File /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/codecs.py, line 321, in decode(result, consumed) self._buffer_decode(data, self.errors, final) UnicodeDecodeError: utf-8 codec cant decode byte 0xd1 in position 142: invalid continuation byte   2、用gbk打开 with open(proxy_backup_sql.log,r,encodinggbk) as proxy_backup_log_handler:for line in proxy_backup_log_handler:print(line,end)192.186.100.10 | 0.012 | select id from tempdb.person where name寮犱笁; 192.186.100.10 | 0.012 | select id from tempdb.person where name杨白劳; 可以看到没有报异常、但是这个只是巧合、gbk刚好能解码utf8编码下的“张三”并把它解码成了“寮犱笁”   【latin-1 有的牛逼之处】   latin-1 这个字符集的牛逼之处、latin-1字符集是在ascii码上的一个扩展它把ascii码没有用到过的字节码都给编上了对应的字符所以它能表示   的字符就更多了针对单个字节来说就没有它不能解码的这个就是它的牛逼之处所在。也就是说当我们不在乎内容中多字节码的正确怕的情况   下使用latin-1字符集是不会出现解码异常的     以下代码可以说明latin-1可以解码任意的单个字节 #!/usr/bin/env python3 #! -*- coding:utf8 -*- ba bytearray(256) for i in range(256):ba[i]iprint(number {0} char {1}.format(i,ba[i:i1].decode(latin-1)) )   【在我们不在乎多字节码的情况性的情况下latin-1真的是无敌了】   latin-1可以解码任意文件如果你只是在意单字节码中的内容的话 #!/usr/bin/env python3 #! -*- coding:utf8 -*-if __name__ __main__:with open(proxy_backup_sql.log,r,encodinglatin-1) as proxy_backup_log_handler:for line in proxy_backup_log_handler:print(line,end)   可以看到如下的输出 192.186.100.10 | 0.012 | select id from tempdb.person where nameå¼ ä¸; 192.186.100.10 | 0.012 | select id from tempdb.person where nameÑî°×ÀÍ;   虽然是乱码但是绝对不会有异常发生。   ---
http://www.pierceye.com/news/714966/

相关文章:

  • 一个网站开发成本网店推广方案范文
  • 为什么要做seo盐城网站优化
  • 网站策划方案ppt站长查询域名
  • 网站开发需要哪些流程wordpress 添加widget
  • 在线报名网站建设汉字logo设计生成器
  • 移动网站和桌面网站区别烟台网站设计制作公司电话
  • 遵义网站建设网站定制wordpress主题多少钱
  • 外贸网站如何做推广是什么意思长沙制作公园仿竹护栏多少钱一米
  • seo网站有优化培训吗小程序商城开发华网天下优秀
  • 无锡品牌网站建设介绍网络营销是不是网络推广
  • 旅游网站建设论文题目商用图片的网站
  • 做网页专题 应该关注哪些网站网页版梦幻西游吸血鬼怎么过
  • gwt 网站开发深圳公司形象墙制作
  • 自己做的网站别人打不开大连网站建设方案维护
  • 卖高仿名牌手表网站两学一做网站飘窗
  • 企业网站备案资料样本购卡网页怎么制作
  • 什么网站能免费做简历ui设计师是什么意思
  • 天津网站推广公司哪家好深圳公司注册流程及资料
  • 家装网站建设哪家好点赣州市南康建设局网站
  • 北京建设网站制作我国外贸网站的建设
  • 自己做网站如何赚钱excel做网站
  • 芯片商城网站建设wordpress批量替换图片路径
  • 网站添加手机站软件 项目管理系统
  • 大理装饰公司做网站网站建设费用:做个网站要多少钱?
  • 简约的网站设计界面百度收录网站左侧图片
  • 对建设网站未来发展的建议教育 网站模板
  • 做篮球网站用的背景图广州黄埔做网站的公司
  • 爱客源seo怎么刷关键词排名
  • 自己做网站网页文件在哪里公司官网定制
  • 网站建设怎么样工作室哪个网站可以免费制作h5