UTF-8&GBK


引用

  • UTF-8和GBK的区别_维-CSDN博客_gbk和utf-8
  • Unicode、UTF-8、UTF-16之间的区别_无籽西瓜吃吗的博客-CSDN博客_utf-16

正文

其实很多时候,这类转码的操作最主要的目的就是为了解决歧义的问题。
这类通用的编码的目的最主要是将语言转换为计算机能传输的01的形式。所以,理想的编码方式希望在获取字节流的同时,能直接进行解码生成对应的文字。
众所周知,计算机是洋鬼子发明的= =,所以最初的编码方式肯定是按照洋鬼子的喜好来,通过ASCII来进行编码。这种编码方式定义了洋鬼子常用的一些字母啊,数字啊之类的一些符号,生拼硬凑最后汇成了定义了128个字符编码的ASCII表。

在这种情况下,世界上那么多个国家,那么多种文字,总不可能强迫别人都用英语来干一切活吧。所以,强如我大中华,一定要用我们自己的方式来突破洋鬼子的垄断,(华为加油!),GBK应运而生。就我所了解,GBK使用最高位01来标识当前字符是不是中文,如果是1,则采用当前和下一个字节来表示一个汉字,如果是0,则当前字符直接通过ASCII进行解码即可。这种方式可以算是取其精华去其糟粕,巧妙地通过ASCII最高位为0的特性,既保留了对于常规字符仅仅使用一个字节的便利和高效,又很好地将汉字加入到了编码中。这一点真的很符合中国一如既往的特性,中庸,没有那么强的侵略性,这也是为什么”那兔“里中国被比如成兔子。通过这种方式,能表示65536种情况的字符,基本上使用也足够了。
那UTF-8系列为什么会出现呢?因为世界上不仅仅只有中文国家还有英文国家。还有类似”第三世界领袖”这样拥有n种语言的“超级大国”。能不能希望有这样子一种官方的默认编码方式能很好地包容所有的语言呢?所以就出现了UTF系列。洋鬼子看见你有好东西,就是喜欢直接搞一套新的玩意,然后说自己有绝对的解释权。UTF-8的整体思路和GBK其实差不多,GBK是通过1个或者两个字节来表示一个字符,那么UTF-8就通过1-3个字节来表示一个字符。
那么怎么来区别到底是使用1个还是2个或者三个字节呢?如何解决歧义问题呢?还是通过读取一个字节开头的高位数据,如果是0则是1个字节,1为2个字节,11是三个字节。具体的识别逻辑和GBK差不多。
然后是UTF-16,这种编码方式统一采用2个字节来表示字符,所以也不用特地去识别字节的高位了,直接按字取字节输出就行了。通过这种编码来重新编码,原本用UTF-8编码的汉字量大的数据,可以省下1/3的数据传输量,因为在UTF-8的编码方式中,汉字可是占据了3个字节。
剩下的UTF-32什么的,就是对于以上编码方式的拓展,希望通过用更长的字节来表示更多的字符,仅此而已。

我所理解的UTF-8和GBK相关推荐

  1. 字符集、字符编码、国际化、本地化简要总结(UNICODE/UTF/ASCII/GB2312/GBK/GB18030)

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 环境说明   普通的linux 和 普通的windows.    ...

  2. 深入理解-字符编码ASCII,GB2312,GBK,Unicode,UTF-8

    字符编码 简介 起初再考虑写不写这篇文章,感觉这篇文章比较枯燥乏味,而且自己感觉也没理解的太透彻,就把理解的记录下来,所以这是纪念版的 前方高能,非战斗人员请迅速撤离,我要开始装逼了. Go hard ...

  3. [html] 解释下你对GBK和UTF-8的理解?并说说页面上产生乱码的可能原因

    [html] 解释下你对GBK和UTF-8的理解?并说说页面上产生乱码的可能原因 gbk和utf8的理解我们这里将以最简单最容易理解的方式来描述GBK和UTF8的区别,以及它们分别是什么.GBK编码: ...

  4. 编码标准-GB2312 GBK GB18030

    关于 ASCII编码 可以查看我的另外一篇博客 编码标准-ASCII 关于 Unicode 可以参考我的另外一篇博客 Unicode 编码标准-GB2312 GBK GB18030 基本概念 区位码 ...

  5. GBK和UTF-8之间的战争,websphere6.1乱码解决方案

    战争,折磨的都是码农... 1.Tomcat默认编码,ISO8859_1, 2.websphere6.1我自定义编码GBK 3.旧项目编码GBK, 4.新项目编码utf-8 这是背景 旧项目发出请求, ...

  6. csapp深入理解计算机系统实验

    文章目录 实验0 环境配置 虚拟机下载 ubuntu系统 下载gcc gdb 和 vim 下载csapp实验包 实验1 datalab-handout 实验0 环境配置 配置了一下午加一晚上的环境,遇 ...

  7. 字符编码的前世今生--转

    原文地址:http://gitbook.cn/books/599d075614d1bc13375caeaf/index.html 前言 很多程序员对字符编码不太理解,虽然他们大概知道 ASCII.UT ...

  8. ASCII码、Unicode编码对照表 —— ASCII控制字符 Unicode编码 字符编码的前世此生

    ASCII控制字符  Unicode编码 ASCII(American Standard Code for Information Interchange,美国信息互换标准代码,ASCⅡ)是基于拉丁字 ...

  9. 史诗级计算机字符编码知识分享,万字长文,一文即懂!

    本文由阿里技术团队詹向阳(骁飏)分享,原题"一文读懂字符编码",有修订和改动. 一.引言 说起计算机字符编码,让我想起了科幻巨作<三体-黑暗深林>人类遇到外星文明魔戒的 ...

  10. 以码出高效为灯,铺垫高速之路

    文章目录 1.计算机基础 1.1.0&1的考察点: 1.2. 位移运算(>> <<) 1.3.无符号位移运算(>>> <<<) 1. ...

最新文章

  1. yii2 模型中set_Day184:人脸识别中open-set与close-set
  2. python安装后怎么配置环境变量_Python安装与环境变量的配置
  3. X皮书之shell 常用代码
  4. oracle大对象实例_Oracle解析复杂json的方法实例详解
  5. [导入]LINQ体验(11)——LINQ to SQL语句之Null语义和String/DateTime方法
  6. Promise面试题
  7. 面经——算法题数据输入输出
  8. python的flask微服务-flask微服务框架的初步接触
  9. [JavaScript] Canvas 实现的签字板
  10. 作为一名31岁的软件测试员,工作3年,月薪不到2W,担心被应届生取代
  11. mysql filtered_为什么Mysql explain extended中的filtered列值总是100%
  12. 金泰克/tigo S300 240G SM225K H27QFG8PEM5R 完整开盘教程
  13. 2022年9月青少年软件编程(图形化)等级考试试卷--三级--跳高比赛
  14. dB与倍数换算速查表
  15. python lib库_python标准库pathlib常见操作
  16. 魔界中的黑V天險(1)
  17. 支付宝扫福字原理及快速获得“福卡”方法
  18. 学习 Redis Connection(连接)
  19. 设计模式02-动态代理模式
  20. 离子交换树脂的使用方法及其原理

热门文章

  1. 两边双虚线是什么意思_单黄线和双黄线有什么不同?很多人都记不对,被扣分都不知道...
  2. 仿站小工具8.0_安卓微信8.0版本可以升级了!新增4个实用功能,内附更新方式...
  3. matlab求adc信号的信噪比,关于ADC的信噪比 - pengyouxiaohui的日志 - EETOP 创芯网论坛 (原名:电子顶级开发网) -...
  4. python语言跨平台语言吗_python属于跨平台语言吗?
  5. easyexcel根据模板写入_用 Vue+ElementUI 搭建后台管理极简模板
  6. 计算机应用基础试题事业单位,机关事业单位技术工人计算机应用基础知识复习题...
  7. linux 卡在grub_详解ubuntu双系统启动时卡死解决办法
  8. java 整合hadoop_Spark 如何摆脱java双亲委托机制优先从用户jar加载类?
  9. ajax传值从前台到后台乱码,jquery ajax传值,get方式后台中文乱码
  10. c#对象集合去重_《C#编程入门》概览