gbk

python字符编码

断了今生、忘了曾经 提交于 2019-11-28 01:53:49
python3默认unicode 所以操作起来更加的方便,可以直接编码 msg = '你好,世界' # python3 print(msg) print(msg.encode('utf-8')) print(msg.encode('euc-jp')) print(msg.encode('utf-8').decode('utf-8').encode('gb2312'))    ''' python2 msg_gbk = msg.decode('utf-8).encode('gbk') print(msg_gbk)    来源: https://www.cnblogs.com/lcxiao/p/11386515.html

采集页面编码GBK处理注意的问题

半世苍凉 提交于 2019-11-28 00:10:24
现在项目基本都是UTF-8编码的,但是有个别网站还是GBK编码的,比如搜狗。采集到的GBK编码的页面处理会导致解析不了html内容。 处理方法 转换页面内容为UTF-8 替换页面的头部GBK为UTF-8 这一点很重要 /** * 内容处理 * 把GBK转码为utf-8 * 头部标识编码 gbk替换成utf-8(采集的时候页面转换成了utf-8编码,header头也一定记得替换成utf-8编码,否则编码就会有问题) */ $content = iconv('GBK', "UTF-8//ignore", $content); $content = preg_replace("/gb(k|2312)/i", "utf-8", $content); 之前处理字符串编码问题的方法 function doEncoding($str){ $encode = strtoupper(mb_detect_encoding($str, ["ASCII",'UTF-8',"GB2312","GBK",'BIG5'])); if($encode!='UTF-8'){ $str = mb_convert_encoding($str, 'UTF-8', $encode); } return $str; } curl 检测响应Content-Type编码是GBK的 /** * 转换gbk编码为utf8 *

python笔记6—day6

别等时光非礼了梦想. 提交于 2019-11-27 23:40:44
知识点 ascii A : 00000010 8位 一个字节 unicode A : 00000000 00000001 00000010 00000100 32位 四个字节     中:00000000 00000001 00000010 00000110 32位 四个字节 utf-8 A : 00100000 8位 一个字节   中 : 00000001 00000010 00000110 24位 三个字节 gbk A : 00000110 8位 一个字节   中 : 00000010 00000110 16位 两个字节 1,各个编码之间的二进制,是不能互相识别的,会产生乱码。 2,文件的储存,传输,不能是unicode(只能是utf-8 utf-16 gbk,gb2312,asciid等) python3.0版本之后: str 在内存中是用unicode编码。 bytes类型 对于英文: str :表现形式:s = 'alex' 编码方式: 010101010 unicode bytes :表现形式:s = b'alex' 编码方式: 000101010 utf-8 gbk。。。。 对于中文: str :表现形式:s = '中国' 编码方式: 010101010 unicode bytes :表现形式:s = b'x\e91\e91\e01\e21\e31\e32' 编码方式

使用struct模块解决黏包问题

不羁岁月 提交于 2019-11-27 21:42:04
1 ''' 2 远程执行cmd命令程序 3 如果不使用struct模块,ipconfig等会返回长数据的命令会发生黏包现象 4 ''' 5 import socket 6 import struct 7 8 sk = socket.socket() 9 sk.bind(("127.0.0.1", 8080)) 10 sk.listen() 11 conn, addr = sk.accept() 12 while True: 13 cmd = input(">>>") 14 if cmd == "q": 15 conn.send(b"q") 16 break 17 conn.send(bytes(cmd,encoding="gbk")) 18 # windows系统的命令行的编码格式是GBK所以要进行GBK转码 19 num = conn.recv(4) 20 # 接收返回数据的长度 21 num = int(struct.unpack("i",num)[0]) 22 # 将接收的bytes类型的struct转换的数字解码,因为返回的是元组所以取元组的第一个,并且下面要用的类型是整数型,转换成int类型 23 print(conn.recv(num).decode("gbk")) 24 # 接收上面传进来大小的数据,解码gbk,打印 25 # 发送多少接收多少就不会产生黏包现象了

详解 python 中文编码与处理

岁酱吖の 提交于 2019-11-27 20:13:56
注意:本文只是针对 python 2,在 python 3 中,编码方式与处理技巧有些许变化,具体请参考: Python 2 与 Python 3 的差异对比: http://my.oschina.net/leejun2005/blog/173553 一、使用中文字符 在python源码中如果使用了中文字符,运行时会有错误,解决的办法是在源码的开头部分加入字符编码的声明,下面是一个例子: #!/usr/bin/env python # -*- coding: cp936 -*- Python Tutorial中指出,python的源文件可以编码ASCII以外的字符集,最好的做法是在#!行后面用一个特殊的注释行来定义字符集: # -*- coding: encoding -*- 根据这个声明,Python会尝试将文件中的字符编码转为encoding编码,并且,它尽可能的将指定地编码直接写成Unicode文本。 注意,coding:encoding只是告诉Python文件使用了encoding格式的编码,但是编辑器可能会以自己的方式存储.py文件,因此最后文件保存的时候还需要编码中选指定的ecoding才行。 二、中文字符的存储 >>> str = u"中文" >>> str u'\xd6\xd0\xce\xc4' >>> str = "中文" >>> str '\xd6\xd0

python-02.字符编码

*爱你&永不变心* 提交于 2019-11-27 13:31:54
一 了解字符编码的知识储备 一 计算机基础知识 二 文本编辑器存取文件的原理(nodepad++,pycharm,word) #1、打开编辑器就打开了启动了一个进程,是在内存中的,所以,用编辑器编写的内容也都是存放与内存中的,断电后数据丢失 #2、要想永久保存,需要点击保存按钮:编辑器把内存的数据刷到了硬盘上。 #3、在我们编写一个py文件(没有执行),跟编写其他文件没有任何区别,都只是在编写一堆字符而已。 三 python解释器执行py文件的原理 ,例如python test.py #第一阶段:python解释器启动,此时就相当于启动了一个文本编辑器 #第二阶段:python解释器相当于文本编辑器,去打开test.py文件,从硬盘上将test.py的文件内容读入到内存中(小复习:pyhon的解释性,决定了解释器只关心文件内容,不关心文件后缀名) #第三阶段:python解释器解释执行刚刚加载到内存中test.py的代码( ps:在该阶段,即真正执行代码时,才会识别python的语法,执行文件内代码,当执行到name="egon"时,会开辟内存空间存放字符串"egon") 四 总结python解释器与文件本编辑的异同 #1、相同点:python解释器是解释执行文件内容的,因而python解释器具备读py文件的功能,这一点与文本编辑器一样 #2、不同点:文本编辑器将文件内容读入内存后

解决socket粘包的两种low版模式 os.popen()和struct模块

岁酱吖の 提交于 2019-11-27 11:03:37
os.popen()模式 server端 import socket import os phone = socket.socket() # 实例化一个socket对象 phone.bind(("localhost",8088)) # 绑定地址(host,port)到套接字,在AF_INET下,以元组(host,port)的形式表示地址 phone.listen(5) # 开始TCP监听。backlog指定在拒绝连接之前,操作系统可以挂起的最大连接数量。该值至少为1,大部分应用程序设为5就可以了。 while 1: # 开启循环,多个用户同时连接(当然不是并发,排队连接) conn,addr = phone.accept() # 被动接受TCP客户端连接,(阻塞式)等待连接的到来,会有两个值,conn我也不明白是什么值,addr是客户端连接的地址 while 1: # 客户端与服务端多次对话,客户端多次执行循环 try: # 异常处理,客户端直接退出ConnectionResetError错误 from_client_data = conn.recv(1024) # 接收客户端数据 if from_client_data.upper() == b'Q': # 判断客户端输入是否是q或Q,如果是q,直接退出当前连接 print("客户端退出") break print(from

表格类型数据,Excel csv导入,导出操作

允我心安 提交于 2019-11-27 10:18:55
import pandas# 创建表格格式# ad = pandas.DataFrame({"a": range(1, 10), "b": range(10, 20)})ad = pandas.DataFrame({"name":['lala', 'bbb', 'ccc'], "成绩":[10, 20, 30]})# 导入read = pandas.read_excel("C:\\xxx\\xx\\xx.xls", encoding='gbk')# 导出to = ad.to_excel("C:\\xxx\\xx\\xx.xls", encoding='gbk') 来源: https://www.cnblogs.com/yaohu/p/11358816.html

Python爬虫黑科技(经验)

本小妞迷上赌 提交于 2019-11-27 10:00:23
"作为一名爬虫工程师,你最需要关注的,是数据的来源" 原文: https://www.jb51.net/article/90114.htm 霍夫曼编码压缩算法 1.最基本的抓站 import urllib2 content = urllib2.urlopen('http: //XXXX').read() 2.使用代理服务器 这在某些情况下比较有用,比如IP被封了,或者比如IP访问的次数受到限制等等。 1 2 3 4 5 import urllib2 proxy_support = urllib2.ProxyHandler({ 'http' : ' http://XX.XX.XX.XX:XXXX ' }) opener = urllib2.build_opener(proxy_support, urllib2.HTTPHandler) urllib2.install_opener(opener) content = urllib2.urlopen( ' http://XXXX ' ).read() 3.需要登录的情况 cookie 表单 import urllib postdata=urllib.urlencode({ 'username': 'XXXXX', 'password': 'XXXXX', 'continueURI': 'http://www.verycd.com/',

GBK字符集输出

浪尽此生 提交于 2019-11-27 08:50:50
1 Windows 8.1 64bit GBK Console 2 3 Qt Creator 4 Mingw64 7.3 64bit 5 QMAKE_CXXFLAGS += \ 6 -finput-charset=UTF-8 \ 7 -fwide-exec-charset=GBK \ 8 -fexec-charset=GBK 1 #include <iostream> 2 3 using namespace std; 4 5 void GBK() { 6 uint32_t len = 0; 7 8 const char* s = "0123456789ABCDEF"; 9 10 for ( uint32_t i=0xA1; i<=0xA9; ++i ) { // GBK/1 11 cout << hex << uppercase << i << s << '\n'; 12 for ( uint32_t j=0xA1; j<=0xFE; ++j ) { // 0xA1~0xFE 846/717 13 if ( j == 0xA1 || (j & 0xF) == 0x0 ) cout << hex << uppercase << ((j+1)>>4) << ' '; 14 cout << static_cast<char>(i) << static_cast<char>(j); 15