python二进制转中文_python3 二进制转中文
关于二进制转中文的问题。
>>> name = '你好'
>>> name
'你好'
>>> bytes(name,'unicode_escape')
b'\\u4f60\\u597d'
现在我有一段二进制数据,想要转化成中文。
bytes_name = b'\x60\x4f\x7d\x59'
我尝试使用
bytes_name.decode('unicode_escape')
去转化,得到结果
'
O}Y’`,
我应该怎样做才可以得到正确的结果
你好
。
谢谢!
===========================================================================
谢谢大家,我已找到答案。
那个二进制数据
bytes_name = b'\x60\x4f\x7d\x59'
是用c语言写的另一个程序传送过来的数据。
根据大家的提示,我将
b'\x60\x4f\x7d\x59'
转化成
b'\\u4f60\\u597d'
,然后再
decode('unicode_escape')
即可。
def parse_unicodestring(unicode_bytes,length):
result_bytes = b''
for i in range(0,length,2):
a = hex(unicode_bytes[i])[2:].encode('unicode_escape') if len(hex(unicode_bytes[i])) == 4 else ('0'+hex(unicode_bytes[i])[2:]).encode('unicode_escape')
b = hex(unicode_bytes[i+1])[2:].encode('unicode_escape') if len(hex(unicode_bytes[i+1])) == 4 else ('0'+hex(unicode_bytes[i+1])[2:]).encode('unicode_escape')
result_bytes += b'\u'+b+a
return result_bytes.decode('unicode_escape')
大多数汉字的utf8二进制形态都是三个字节。参照维基百科对utf8编码的描述,将第一个字节的二进制数的前四位掐掉,第二字节的前两位,自己第三字节的前两位掐掉,剩余部分拼起来(总共16位的二进制数值)就是该UTF-8汉字的实际unicode值。转成16进制打印出来就能验证效果了。我曾经亲自实验过。
参考信息 https://en.m.wikipedia.org/wiki/UTF-8
第一次答题。话说我用户名是guoshim,手机端回答。为什么显示为一个叫做murphywuwu的答案?数据串了吗?奇怪了。
你的二进制不对啊。。如下:
>>> name = '你好'
>>> name
'你好'
>>> name.encode()
b'\xe4\xbd\xa0\xe5\xa5\xbd'
>>> bname = name.encode()
>>> bname
b'\xe4\xbd\xa0\xe5\xa5\xbd'
>>> bname.decode()
'你好'
>>>
这是二进制么?
python二进制转中文_python3 二进制转中文相关推荐
- python用正则表达式提取中文_python3.x提取中文的正则表达式示例代码
python3.x提取中文的正则表达式示例代码 发布时间:2020-09-29 06:26:16 来源:脚本之家 阅读:118 作者:mrr 实例一: 读取txt文件中含有中文的字符 import r ...
- python中如何输出中文_python3如何输出中文
Python3中输出中文的方法如下: 方法一:在环境变量中,设置PYTHONIOENCODING=utf-8 以centos为例执行:export PYTHONIOENCODING=utf-8 方法二 ...
- python 如何输出中文_python3如何输出中文
Python3中输出中文的方法如下: 方法一:在环境变量中,设置PYTHONIOENCODING=utf-8 以centos为例执行:export PYTHONIOENCODING=utf-8 方法二 ...
- java 中文转二进制_Java 实现中文与二进制代码互转
//将二进制字符串转化为中文 import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; im ...
- python中文字符串编码_python中文乱码 字符串和编码
Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了. Unicode标准也在不断发展,但最常用的是用两个字节表示一个字符(如果要用到非常偏僻的字符,就需要4个字节).现代操作系统和大 ...
- 使用Python,OpenCV,本地二进制模式(LBP)进行人脸识别
使用Python,OpenCV与本地二进制模式(LBP)进行人脸识别 1. 效果图 2. 原理及步骤 2.1 原理 2.2 步骤 3. 源码 参考 在深度学习和暹罗网络之前,面部识别算法依赖于特征提取 ...
- 具有Python&OpenCV的本地二进制模式
具有Python&OpenCV的本地二进制模式 1. 效果图 2. 原理 2.1 项目结构 2.2 数据集构建 2.3 什么是本地二进制模式? 3. 源码 参考 这篇博客将介绍如何使用本地二进 ...
- python语音合成 标贝_tacotronV2 + wavernn 实现中文语音合成(Tensorflow + pytorch)
TacotronV2 + WaveRNN 开源中文语音数据集标贝(女声)训练中文TacotronV2,实现中文到声学特征(Mel)转换的声学模型.在GTA模式下,利用训练好的TacotronV2合成标 ...
- Python - Sublime Text 3 控制台不能输出中文的解决方法
Python - Sublime Text 3 控制台不能输出中文的解决方法 参考文章: (1)Python - Sublime Text 3 控制台不能输出中文的解决方法 (2)https://ww ...
最新文章
- nodejs全局安装和本地安装的区别
- groovy怎样从sql语句中截取表名_SQL基础教程学习笔记
- CVE-2019-0708复现
- WordPress分类列表函数:wp_list_categories用法及参数详解举例
- SharePoint2007 配置MOSS基于AD的Forms验证
- struct file 结构体
- c语言文件归并问题_通知:土地有变!土地归并:每亩补9万?明年起:合村并镇!能否启动?1个好消息!...
- 夺命雷公狗—angularjs—11—service的基本概念
- install4j Enterprise Edition序列号
- Spring事件监听机制
- 《深入解析Windows操作系统第4版》随笔记录02
- java生成uuid主键_java生成UUID
- 全国计算机软考程序员考试大纲(2012)
- jsonrpc(jsonrpc4j)demo
- java封装继承多态实验总结_java封装继承多态理解3000字论文
- 开心网“卖身”:错过转型时机,逆水行舟,不进则退
- 路由器桥接成功后,仍然没有网络
- 剑指offe 面试题5, 从尾到头打印链表
- 计算机音乐念诗之王,念诗之王(电音版)
- Scrapy爬取知乎Python专题精华,连答主头像都给爬下来,不放过一切
热门文章
- 笔记本光驱在计算机里不显示器,电脑开机硬盘灯一直亮不闪的 光驱没反应显示器不显示 风扇都转的...
- 三点水加一个必须的必
- Android进阶之路 - StringUtils、NumberUtils 场景源码
- 第五章:Django连接mysql数据库
- Java毕设项目线上教学平台(java+VUE+Mybatis+Maven+Mysql)
- go语言字符串变量初始化以及字符串拼接
- 梳理正则表达式发展史
- centos下安装anaconda、scikit-learn、opencv、pytorch 和torchvision(文件在Windows下载好linux版本,使用xshll传到linux)
- 人工智能(mysql)—— mysql完整的sql查询
- 使用IDM下载磁力链或迅雷文件