关于二进制转中文的问题。

>>> 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 二进制转中文相关推荐

  1. python用正则表达式提取中文_python3.x提取中文的正则表达式示例代码

    python3.x提取中文的正则表达式示例代码 发布时间:2020-09-29 06:26:16 来源:脚本之家 阅读:118 作者:mrr 实例一: 读取txt文件中含有中文的字符 import r ...

  2. python中如何输出中文_python3如何输出中文

    Python3中输出中文的方法如下: 方法一:在环境变量中,设置PYTHONIOENCODING=utf-8 以centos为例执行:export PYTHONIOENCODING=utf-8 方法二 ...

  3. python 如何输出中文_python3如何输出中文

    Python3中输出中文的方法如下: 方法一:在环境变量中,设置PYTHONIOENCODING=utf-8 以centos为例执行:export PYTHONIOENCODING=utf-8 方法二 ...

  4. java 中文转二进制_Java 实现中文与二进制代码互转

    //将二进制字符串转化为中文 import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; im ...

  5. python中文字符串编码_python中文乱码 字符串和编码

    Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了. Unicode标准也在不断发展,但最常用的是用两个字节表示一个字符(如果要用到非常偏僻的字符,就需要4个字节).现代操作系统和大 ...

  6. 使用Python,OpenCV,本地二进制模式(LBP)进行人脸识别

    使用Python,OpenCV与本地二进制模式(LBP)进行人脸识别 1. 效果图 2. 原理及步骤 2.1 原理 2.2 步骤 3. 源码 参考 在深度学习和暹罗网络之前,面部识别算法依赖于特征提取 ...

  7. 具有Python&OpenCV的本地二进制模式

    具有Python&OpenCV的本地二进制模式 1. 效果图 2. 原理 2.1 项目结构 2.2 数据集构建 2.3 什么是本地二进制模式? 3. 源码 参考 这篇博客将介绍如何使用本地二进 ...

  8. python语音合成 标贝_tacotronV2 + wavernn 实现中文语音合成(Tensorflow + pytorch)

    TacotronV2 + WaveRNN 开源中文语音数据集标贝(女声)训练中文TacotronV2,实现中文到声学特征(Mel)转换的声学模型.在GTA模式下,利用训练好的TacotronV2合成标 ...

  9. Python - Sublime Text 3 控制台不能输出中文的解决方法

    Python - Sublime Text 3 控制台不能输出中文的解决方法 参考文章: (1)Python - Sublime Text 3 控制台不能输出中文的解决方法 (2)https://ww ...

最新文章

  1. nodejs全局安装和本地安装的区别
  2. groovy怎样从sql语句中截取表名_SQL基础教程学习笔记
  3. CVE-2019-0708复现
  4. WordPress分类列表函数:wp_list_categories用法及参数详解举例
  5. SharePoint2007 配置MOSS基于AD的Forms验证
  6. struct file 结构体
  7. c语言文件归并问题_通知:土地有变!土地归并:每亩补9万?明年起:合村并镇!能否启动?1个好消息!...
  8. 夺命雷公狗—angularjs—11—service的基本概念
  9. install4j Enterprise Edition序列号
  10. Spring事件监听机制
  11. 《深入解析Windows操作系统第4版》随笔记录02
  12. java生成uuid主键_java生成UUID
  13. 全国计算机软考程序员考试大纲(2012)
  14. jsonrpc(jsonrpc4j)demo
  15. java封装继承多态实验总结_java封装继承多态理解3000字论文
  16. 开心网“卖身”:错过转型时机,逆水行舟,不进则退
  17. 路由器桥接成功后,仍然没有网络
  18. 剑指offe 面试题5, 从尾到头打印链表
  19. 计算机音乐念诗之王,念诗之王(电音版)
  20. Scrapy爬取知乎Python专题精华,连答主头像都给爬下来,不放过一切

热门文章

  1. 笔记本光驱在计算机里不显示器,电脑开机硬盘灯一直亮不闪的 光驱没反应显示器不显示 风扇都转的...
  2. 三点水加一个必须的必
  3. Android进阶之路 - StringUtils、NumberUtils 场景源码
  4. 第五章:Django连接mysql数据库
  5. Java毕设项目线上教学平台(java+VUE+Mybatis+Maven+Mysql)
  6. go语言字符串变量初始化以及字符串拼接
  7. 梳理正则表达式发展史
  8. centos下安装anaconda、scikit-learn、opencv、pytorch 和torchvision(文件在Windows下载好linux版本,使用xshll传到linux)
  9. 人工智能(mysql)—— mysql完整的sql查询
  10. 使用IDM下载磁力链或迅雷文件