python中文显示乱码问题之“文本读写和网络发送”
最近撸主一直在写点东西……忙的要屎……发帖赚个存在感……
玩python的机油们一定对中文乱码烦恼不已,撸主也曾经为这个困扰了很久本文就以撸主最近在写的某个 扫号工具 的实例来说明文本读写和网络发送中文的一个解决办法
0x01 首先,我们建立两个文本username.txt(ANSI),username2.txt(utf-8),分别为ANSI和utf-8格式里面写一个英文,再写一个中文,如下图
0x02 然后我们直接读取可以明显的看到,ANSI的显示是正确的,而UTF-8显示乱码
0x03 接着,我们来说说网络发送大家拿抓包工具抓下包就会知道,中文用户名在网络中并不是直接URL编码发送的,而是经过一系列解码编码之后再URL编码的例如“杨凡”就变成了这样……
那么python中怎样编码呢?如下
from urllib import quotestr = unicode(self.username, 'gbk')username = quote(str.encode("UTF-8"))
效果如下(PS:凡叔……我没有扫出你的密码,只是做个演示……)
0x04 再来看看写入呢?就接着刚才说的需要用ANSI格式的文本来读取,然后同样传递这个读取到的中文编码为文件名
if (1): print "GET_ONE!!---->"+self.username+"||"+self.password
savepath = “c:/”+self.username+”.txt”
print savepath
fps = open(self.savepath,’a’)
fps.write(username+”||”+password+”\n”)
fps.close()
自然,cmd窗口都显示正常了,写入当然也是正常的
0x05 总结这有什么用呢?1.读写文件中文问题的解决2.cmd命令提示窗口中显示中文问题的解决3.网络扫号类工具,中文用户名问题解决
声明: 本文采用 CC BY-NC-SA 3.0 协议进行授权转载请注明来源:Panni Security Team本文链接地址:http://www.panni007.com/2013/03/25/825.html 即使爬到最高的山上,一次也只能脚踏实地地迈一步。