在进行CRNN训练中文字体OCR时,楼主碰到了令人头疼的问题,中英文编码不同。
这边文章主要来讲一下“utf-8”与“gbk”的一些问题,有人或许会问不是还有一个unicode吗?看完下面一张图就知道啦。

unicode其实是一种在操作过程中存在的字符状态,一般来讲,例如python中的str都是以“unicode”编码,在进行操作时会具化成为“utf-8”与“gbk”,往往是前者居多。
如上图所示,在python中不同编码的转换都要经过Unicode,不论是UTF-8或者是GBK,整个过程都是先通过编码decode转换为Unicode告诉Unicode当前的编码格式是什么、然后再通过解码encode转换为自己想要实现的编码格式或类型。
看下下面的命令,会清楚很多。

s = '你好'
# str类型,默认编码为unicode
print(s.encode("gbk"))
# Unicode转gbk
# 输出为:b'\xc4\xe3\xba\xc3'
s = s.encode("gbk")
# 将gbk的s编码赋给s
print(s)
# 显然输出为: b'\xc4\xe3\xba\xc3'
print(len(s))
# 输出长度为 **4**
print(s.decode('gbk').encode("utf-8")) # Unicode转utf-8
#输出为: b'\xe4\xbd\xa0\xe5\xa5\xbd'
#在这条语句中,由于先前s已经变成了gbk编码,所以得先解码变成unicode,再进行编码,否则报错
s = s.decode('gbk').encode("utf-8")
print(s)
#显然输出为: b'\xe4\xbd\xa0\xe5\xa5\xbd'
print(len(s))
# 输出长度为 **6**

那么“utf-8”与“gbk”两者区别是什么呢:
一、GBK是在国家标准GB2312基础上扩容后兼容GB2312的标准(好像还不是国家标准)。GBK编码专门用来解决中文编码的,是双字节的。不论中英文都是双字节的。GBK包含全部中文字符。
二、UTF-8 编码是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24位(三个字节)来编码。对于英文字符较多的论坛则用UTF-8 节省空间。另外,如果是外国人访问你的GBK网页,需要下载中文语言包支持。访问UTF-8编码的网页则不出现这问题。可以直接访问。UTF-8则包含全世界所有国家需要用到的字符。

python编码问题——“utf-8”与“gbk”相关推荐

  1. python编码规范utf8还是gbk还是ask_彻底搞懂 Python 编码

    因为中文的特殊编码,导致 Python2 和 Python3 使用过程中的各种编码问题,如果不清楚其中的关联关系,那么这就一直是个大坑,不是懵逼就还是懵逼,所以就目前碰到的情况彻底梳理下 Python ...

  2. html转换编码格式,html编码转换 html编码设置utf gbk编码转换图文教程

    html编码转换 html编码设置utf gbk编码转换图文教程篇 常用HTML编码之urf-8编码转换为gb2312编码或者gb2312转换为utf-8编码快速转换设置,这里DIVCSS5介绍使用D ...

  3. python编码终极版

    **转载网址**:https://www.cnblogs.com/575dsj/p/7112767.html py编码终极版 说起python编码,真是句句心酸.算起来,反复折腾两个来月了.万幸的是, ...

  4. python 乱码转码_数据库乱码问题 Python 编码问题(Unicode 的 encode、decode 相互转换 )...

    前言: 今天有个项目需要合并(A合并到B),我所做的就是数据库的合并操作,其中出现的主要问题就是乱码的问题.乱码这个问题是很常见的问题,今天整理了下自己所理解的一点见解. 案例: NAME COMPA ...

  5. python 编码转换

    一.了解字符编码的知识储备 1. 文本编辑器存取文件的原理(nodepad++,pycharm,word) 打开编辑器就打开了启动了一个进程,是在内存中的,所以在编辑器编写的内容也都是存放与内存中的, ...

  6. Python编码---转自金角大王

    本节内容 编码回顾 编码转换 Python的bytes类型 编码回顾 在备编码相关的课件时,在知乎上看到一段关于Python编码的回答 这哥们的这段话说的太对了,搞Python不把编码彻底搞明白,总有 ...

  7. python编码问题无法复现_Python编码问题详解

    1. 基本概念 字符集(Character set) 解释:文字和符合的总称 常见字符集: Unicode字符集 ASCII字符集(Unicode子集) GB2312字符集 编码方法(Encoding ...

  8. PYTHON编码处理-str与Unicode的区别

    一篇关于STR和UNICODE的好文章 整理下python编码相关的内容 注意: 以下讨论为Python2.x版本, Py3k的待尝试 开始 用python处理中文时,读取文件或消息,http参数等等 ...

  9. python编码读法-python中文读法

    广告关闭 腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元! 而python是测试过程中最为常用的语言之一,很多测试团队的自动化代码和用例都是使 ...

  10. python编码问题总结

    http://www.xprogrammer.com/1258.html 最近利用python抓取一些网上的数据,遇到了编码的问题.非常头痛,总结一下用到的解决方案. linux中vim下查看文件编码 ...

最新文章

  1. 首场见习挑战赛倒计时3天!20000元奖学金瓜分就等你了!
  2. Visual Studio 2015编译Lua 5.3.4遇到的坑
  3. 手动实现Promise
  4. 【Python】统计字符串里某个字符或子字符串出现的次数
  5. test命令用法。功能:检查文件和比较值
  6. oracle12c清理游标,Oracle专题12之游标
  7. cx_Oracle模块
  8. mybatis sql不等于
  9. Verilog初级教程(17)Verilog中的case语句
  10. 关于计算机专业的情景剧剧本,大学生心理情景剧剧本.pdf
  11. 网易云音乐歌词python
  12. .Net Core开发学习(一) ——Startup 类
  13. 解决phpmyadmin加载慢问题
  14. RabbitMQ极速入门
  15. ASP.Net+XML打造留言薄
  16. android微信换行,微信终于支持换行输入了,只需要一个简单的操作-excel自动换行...
  17. 《C语言程序设计》江宝钏主编-习题6-1-温度转换
  18. [技术杂谈]常用远程工具下载各个平台操作系统
  19. 微商必备6款软件!十分好用
  20. PPP协议与WAN技术

热门文章

  1. 如何加粗线条html,PS线条如何加粗,加深?
  2. 主机管理系统考虑的功能
  3. 计算机基础学习记录4-2
  4. flash制作打地鼠游戏代码,打地鼠游戏编程代码
  5. 前端开发和html5,Web前端和HTML5前端相同吗 有区别吗
  6. day06--java高级编程:多线程,枚举类,注解,反射,网络通讯
  7. 百度:度娘换上时尚的比基尼亮瞎你的眼睛
  8. 小米笔记本air 13.3 2018款参数
  9. imagemagick安装问题
  10. 库 家庭组 计算机 网络,Windows 8家庭组网络连接功能详解