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接受数据的更多相关文章

  1. Python3编码解码url

    python2和python3对于url的解码和编码 某天做爬虫时遇到一个post请求的参数是编码过的字符串如下,看不懂,初步判断可能是url编码 str = "%7B%22Shopping ...

  2. python3 编码解码

    字符换算 比特(bit) 计算机最小的存储单位 字节(byte) 1 bit = 1 位 8 bit = 1 byte 1024 bytes = 1 kb 1024 kb = 1 mb 1024 mb ...

  3. python摸爬滚打之day06----小数据池、编码解码

    1.小数据池 代码块:  一个模块, 一个函数, 一个类, 甚至每一个command命令都是一个代码块. 一个文件也是一个代码块.而不需要创建一个新的数据. 这样会节省更多的内存区域. 在cmd命令行 ...

  4. Atitit. 二进制数据ascii表示法,与base64编码解码api 设计标准化总结java php c#.net

    Atitit. 二进制数据ascii表示法,与base64编码解码api 设计标准化总结java php c#.net 1. Base64编码, 1 1.1. 子模式 urlsafe Or  url  ...

  5. 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 ...

  6. Python3的URL编码解码

    前言 博主最近在用python3练习一些爬虫脚本的时候,发现一些url的编码问题,在浏览器提交请求api时,如果url中包含汉子,就会被自动编码掉.呈现的结果是 ==> %xx%xx%xx.如果 ...

  7. java中文乱码解决之道(六)-----javaWeb中的编码解码

    在上篇博客中LZ介绍了前面两种场景(IO.内存)中的java编码解码操作,其实在这两种场景中我们只需要在编码解码过程中设置正确的编码解码方式一般而言是不会出现乱码的.对于我们从事java开发的人而言, ...

  8. java中文乱码解决之道(六)—–javaWeb中的编码解码

    在上篇博客中LZ介绍了前面两种场景(IO.内存)中的java编码解码操作,其实在这两种场景中我们只需要在编码解码过程中设置正确的编码解码方式一般而言是不会出现乱码的.对于我们从事java开发的人而言, ...

  9. day2_python的数据类型,sys,os模块,编码解码,列表,字典

    今天主要了解了python的数据类型,sys,os模块,编码解码,列表,字典 1.数据类型:int(python3没有长整型)文本总是Unicode,str表示二进制用byte类表示布尔型:True( ...

随机推荐

  1. python解析HTML之:PyQuery库的介绍与使用

    本篇大部分转载于https://www.jianshu.com/p/c07f7cd1b548 先放自已自己解析techweb一个网站图片的代码 from pyquery import PyQuery ...

  2. 【[COCI2011-2012#5] POPLOCAVANJE】

    据说这道题卡空间? 不存在的,拿\(AC\)自动机去存\(5000\times5000\)的串肯定是要M的 我们可以考虑对长度为\(n\)的串建一个\(SAM\),这样空间就只需要两倍的\(3e5\) ...

  3. 利用firebug 查看JS方法, JS 调试

    “DOM” 可以查看变量和方法. “脚本”可以用来调试js方法. 有空总结一下白鹤堂老师的最牛JavaScript.

  4. Android学习笔记_59_清除sdcard缓存

    对于手机来说,每个软件在安装时,都会在sdcard上创建一个目录,用于缓存文件.市场上针对这些软件,统一了它的sdcard上的目录,将缓存目录存放到数据库中.如果要清理,可以根据当前应用包的名称,到数 ...

  5. TDD: 测试静态方法

    对于静态方法,mock框架大多不支持测试.所以需要修改代码,以便调用的静态方法可测试. 1  一个静态方法类: public class MyHelper{ public static string ...

  6. mysql数据去重复distinct、group by

    使用distinct 和group by都可以实现数据去重. select distinct 字段 group by 一般放在where条件后

  7. CSS实战2

    1. 鼠标样式 Cursor: pointer   鼠标变成小手 Cursor: default;   小白 Cursor : move;   移动 Cursor : text ;    文本输入 网 ...

  8. 框架篇 -- Struts2

    Struts框架很很早接触的一个框架知识,已经不那么频繁使用了,但是总结一下,复习一下还是很有必要的; Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MV ...

  9. maven pom 增加本地jar 依赖

    https://www.cnblogs.com/huhongy/p/7337280.html <dependency> <groupId>org.hamcrest</gr ...

  10. udt通信java再次升级1.1版

    以前完成了udt的java代码测试,功能基本完成,近几天有时间重新梳理了下源码: 对原通信的关闭统一了方法,close定位过时,由shutdown与shutdownNow代替. 将一些主要方法添加了注 ...