struct发送与显示中文

中文的编码显示常常是一个让人头痛的问题,网络传输的时候中文也会变成二进制的流,接收方显示就成了一个大问题。

今天使用python的struct模块来对数据封包解包,同样有这个问题。解决方法是:一般会把python代码文件声明为utf-8编码,这样可以直接在里面写中文。正常封包,接收的数据使用utf-8解包,要打印出中文字符,可以使用unicode操作。举例如下

1 # -*- coding: utf-8 -*-
2 import struct
3 s = '哈哈'
4 print s, len(s)
5 sp = struct.pack('=6s', s)
6 print sp
7 dp = struct.unpack('=6s', sp)
8 print dp, dp[0], type(dp[0]), len(dp[0]), str(dp[0]), len(str(dp[0]))
9 print unicode(dp[0], 'utf-8')

相应的输出如下

转载于:https://www.cnblogs.com/njucslzh/archive/2012/09/06/2674182.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值