3 python3 编码解码问题 upd接受数据
1.python3下的中文乱码:send_data.encode("utf-8")
from socket import *
udp_socket = socket(AF_INET, SOCK_DGRAM) dest_ip = input("请输入目的ip:")
dest_port = int(input("请输入目的port:"))
send_data = input("请输入要发送的数据:") udp_socket.sendto(send_data.encode("utf-8"),("192.168.123.1",dest_port))
python@ubuntu:~/python06/07-网络编程$ python3 06-python3编码问题.py 请输入目的ip:192.168.123.1
请输入目的port:8080
请输入要发送的数据:hello 你好

2.软件是gb2312编码格式的 send_data.encode("gb2312")
from socket import *
udp_socket = socket(AF_INET, SOCK_DGRAM) dest_ip = input("请输入目的ip:")
dest_port = int(input("请输入目的port:"))
send_data = input("请输入要发送的数据:") #udp_socket.sendto(send_data.encode("utf-8"),("192.168.123.1",dest_port))
udp_socket.sendto(send_data.encode("gb2312"),("192.168.123.1",dest_port))

3.元组解包,upd接受数据
In [2]: a = (111,222) In [3]: b,c = a In [4]: b
Out[4]: 111 In [5]: c
Out[5]: 222
from socket import * updSocket = socket(AF_INET,SOCK_DGRAM)
updSocket.bind(("",7789)) recvData = updSocket.recvfrom(1024) content,destInfo = recvData
print(recvData)
print("content is %s"%content)
print("content is %s"%content.decode("gb2312"))


##等待接受数据
python@ubuntu:~/python06/07-网络编程$ python3 07-python3解码问题.py ('192.168.123.1', 8080)
content is b'hello world'
content is hello world ##等待接受数据
python@ubuntu:~/python06/07-网络编程$ python3 07-python3解码问题.py
(b'\xc4\xe3\xba\xc3\xa3\xac\xb2\xcb\xc4\xf1', ('192.168.123.1', 8080))
content is b'\xc4\xe3\xba\xc3\xa3\xac\xb2\xcb\xc4\xf1'
content is 你好,菜鸟
4.编码encode 解码decode
##对于要发送的数据,编码
sendData = "" udpSocket.sendto(sendData.encode("utf-8")) #对于接受来的数据,要进行解码
recvData = xxx.recvfrom(1024)
a,b = recvData
#a = recvData[0] recvData[0].decode("gb2312")
5.例子

In [10]: n = "你好"
In [11]: n.encode("gb2312")
Out[11]: b'\xc4\xe3\xba\xc3'
In [12]: b = n.encode("gb2312")
In [13]: n
Out[13]: '你好'
In [14]: b
Out[14]: b'\xc4\xe3\xba\xc3'
In [15]: b.decode()
---------------------------------------------------------------------------
UnicodeDecodeError Traceback (most recent call
In [16]: b.decode("utf-8")
---------------------------------------------------------------------------
UnicodeDecodeError Traceback (most recent call
In [17]: b.decode("gb2312")
Out[17]: '你好'
3 python3 编码解码问题 upd接受数据的更多相关文章
- Python3编码解码url
python2和python3对于url的解码和编码 某天做爬虫时遇到一个post请求的参数是编码过的字符串如下,看不懂,初步判断可能是url编码 str = "%7B%22Shopping ...
- python3 编码解码
字符换算 比特(bit) 计算机最小的存储单位 字节(byte) 1 bit = 1 位 8 bit = 1 byte 1024 bytes = 1 kb 1024 kb = 1 mb 1024 mb ...
- python摸爬滚打之day06----小数据池、编码解码
1.小数据池 代码块: 一个模块, 一个函数, 一个类, 甚至每一个command命令都是一个代码块. 一个文件也是一个代码块.而不需要创建一个新的数据. 这样会节省更多的内存区域. 在cmd命令行 ...
- Atitit. 二进制数据ascii表示法,与base64编码解码api 设计标准化总结java php c#.net
Atitit. 二进制数据ascii表示法,与base64编码解码api 设计标准化总结java php c#.net 1. Base64编码, 1 1.1. 子模式 urlsafe Or url ...
- Atitit. 二进制数据ascii表示法,与base64编码解码api 设计标准化总结java php c#.net
Atitit. 二进制数据ascii表示法,与base64编码解码api 设计标准化总结java php c#.net 1. Base64编码,1 1.1. 子模式 urlsafe Or url u ...
- Python3的URL编码解码
前言 博主最近在用python3练习一些爬虫脚本的时候,发现一些url的编码问题,在浏览器提交请求api时,如果url中包含汉子,就会被自动编码掉.呈现的结果是 ==> %xx%xx%xx.如果 ...
- java中文乱码解决之道(六)-----javaWeb中的编码解码
在上篇博客中LZ介绍了前面两种场景(IO.内存)中的java编码解码操作,其实在这两种场景中我们只需要在编码解码过程中设置正确的编码解码方式一般而言是不会出现乱码的.对于我们从事java开发的人而言, ...
- java中文乱码解决之道(六)—–javaWeb中的编码解码
在上篇博客中LZ介绍了前面两种场景(IO.内存)中的java编码解码操作,其实在这两种场景中我们只需要在编码解码过程中设置正确的编码解码方式一般而言是不会出现乱码的.对于我们从事java开发的人而言, ...
- day2_python的数据类型,sys,os模块,编码解码,列表,字典
今天主要了解了python的数据类型,sys,os模块,编码解码,列表,字典 1.数据类型:int(python3没有长整型)文本总是Unicode,str表示二进制用byte类表示布尔型:True( ...
随机推荐
- bzoj4999 This Problem Is Too Simple!
Description 给您一颗树,每个节点有个初始值. 现在支持以下两种操作: 1. C i x(0<=x<2^31) 表示将i节点的值改为x. 2. Q i j x(0<=x&l ...
- Mysql索引学习笔记
1.btree索引与hash索引 下列范围查询适用于 btree索引和hash索引: SELECT * FROM t1 WHERE key_col = 1 OR key_col IN (15,18,2 ...
- 使用canvas上传图片+上传进度
实现效果: 速度过快,调式浏览器方式:F12 后台java代码 public String imageshangchuan(@RequestPart("xxx") Multipar ...
- Restframework中的Request
1.介绍 该篇博客主要介绍restframework内置的Request类,它扩展了Django中的Request类,实现了很多方便的功能--如请求数据解析和认证等. 如: 在APIView中封装的r ...
- 关于改变placeholder的颜色
input::-webkit-input-placeholder{ color:red; } input::-moz-placeholder{ /* Mozilla Firefox 19+ */ co ...
- Java基础——数组复习
数组是一个变量,存储相同数据类型的一组数据 声明一个变量就是在内存空间划出一块合适的空间 声明一个数组就是在内存空间划出一串连续的空间 数组长度固定不变,避免数组越界 数组是静态分配内存空间的,所 ...
- 菜鸟笔记 -- Chapter 6.4 面向对象的三大特性
6.4.1 三大特性概述 面向对象的三大特性是Java中一个很重要的基本理念. 封装是面向对象的核心思想.将对象的属性和行为封装起来,其载体就是类,类通常对客户隐藏其实现细节,这就是封装的意思.采用 ...
- Lucene 工作原理
Lucene 简介 Lucene 是一个基于 Java 的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能.Lucene 目前是 Apache Jakarta 家 ...
- Qt基于tcp协议网络编程
基于Qt网络编程: 基于tcp协议 c/s模式编程 所需要的类:QTcpServer QTcpSocket 利用qt基于tcp协议编写c/s模式程序: 两个类中的信号: QTcpServer : ne ...
- 【例题收藏】◇例题·6◇ 电压机制(voltage)
◆例题·6◆ 电压机制 周六日常模拟赛……已经不知道该说什么了(感觉做不出来的都是好题) ▷ 题目 (终于不用自己翻译英文题了╮(╯-╰)╭) [问题描述] 科学家在“无限神机”(Infinity M ...