Unicode,UTF-8和GBK编码方式,你真的搞懂了吗?

GBK、Unicode、UTF8各语言详解及相互之间的转换形式 阅读详情

前言

在介绍这些编码方式之前我们先要谈谈ASCII码,在计算机中,1 字节对应 8 位二进制数,而每位二进制数有 0、1 两种状态,因此 1 字节可以组合出 256 种状态。如果这 256 中状态每一个都对应一个符号,就能通过 1 字节的数据表示 256 个字符。于是有人就制定了一套编码,描述英语中的字符和这 8 位二进制数的对应关系,这被称为 ASCII 码。但是世界语言那么多,128个字符又怎么能够呢?于是Unicode编码就出现了。
在这里插入图片描述

一. Unicode编码

Unicode 没有规定字符对应的二进制码如何存储,它包含世界上所有的语言字符,字符顺序越靠后的,它存储所需的字节数就越多,所占的空间也就越大。如果统一成Unicode编码,乱码问题也就解决了,但是如果你写的全是英文的话(ASCII中本该用最少字节的字符),用Unicode编码比ASCII编码需要多一倍甚至更多的空间,这就会导致存储和网络传输时的一般数据会非常多,极大的浪费了空间。意识到这个问题后,UTF编码就诞生了。

二. UTF-8编码

Unicode Transformation Format,简称UTF,对unicode字符进行转换,以便于在存储和网络传输时可以节省空间。
UTF编码有3个版本:

  1. UTF-32 :使用4个字节表示所有字符。一定程度的减少了浪费。
  2. UTF-16:使用2,4两种字节表示所有字符;优先使用2个字节,否则使用4个字节。比UTF-32更有效,但还不够完美。
  3. UTF-8:使用1,2,3,4种字节表示所有字符,优先使用1字节,无法满足则增加一个字节,最多4个字节。英文占一个字节,欧洲其他语系占两个,东亚占3个,其他特殊字符占四个。完美的节省了空间

需要注意的是:
在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,才转换成UTF-8编码。

三. GBK编码

GBK编码采用双字节编码方案,其编码范围:8140-FEFE,剔除xx7F码位,共23940个码位。共收录汉字和图形符号21886个,其中汉字(包括部首和构件)21003个,图形符号883个。GBK编码支持国际标准ISO/IEC10646-1和国家标准GB13000-1中的全部中日韩汉字,并包含了BIG5编码中的所有汉字。支持中文繁体字。国家曾规定所有微软的软件进入中国都要默认GBK编码,所以win系统 默认编码也为GBK。

GBK和UNICODE GBK和UNICODE、汉字编码、乱码处理 阅读详情

相关推荐

关于GB2312,GBK,GB18030,Unicode,utf-8,utf-16等的字符集和编码问题一次全说清

针对开发人员经常会遇到的字符集和编码问题,还有字符乱码问题,本文通过对字符,字符集,字符编码,对常用的GB2312、GBK、BG18030、Unicode、utf-8、utf-16,还有windows记事本中常出现的ANSI、Unicode big endian、utf-8 with BOM等编码问题都进行了分析和解答。

就是喜欢JAVA 6849

java初学者关于编码问题,知道这些就够了

几种常用编码:(这是一串悠长的故事。。。)ASCII:美国标准信息交换码,占一个字节的7位       历史解读:这源于美国,最开始美国人思考如何让计算机读懂英语语言,于是就用一个字节的前7位用0  1进行排列   组合,将所有的美国字母、符号包含在内,不过毕竟英语语言的标记符号有限,则使用7位即可全部包含其中。ISO8859-1:  拉丁(欧洲)编码表,占一个字节的8位      历史解读:在老...

zaoanmiao的博客 411

字符编码:ASCII,GBK,Unicode 和 UTF-8

文章目录前言一、ASCII 码二、非 ASCII 编码三、GBK四、UnicodeUnicode 的问题五、UTF-8 前言 大家写程序时肯定有被编码问题困扰过,稍不注意,程序输出就可能是一堆乱码,目前世界上有 UTF-8、GBK、Unicode 等等编码方式,但你真的了解其中的原理吗? 一、ASCII 码 我们知道,计算机内部,所有信息最终都是一个二进制值。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示

h2517956473的博客 713

UTF-8的繁体与简体转换

转自:http://www.cnblogs.com/microtea/archive/2006/05/28/411394.html 本人注:曾一直想把编码问题搞清楚,到现在也没有具体研究。若读者有兴趣的话,看看这篇文章,是不是会有所启发?~~~。欢迎高手详解~~~ 经过一两天的查资料和思考,算是解决了。我自己参照utf-8编码规则做了一个utf-8下面简体和繁体的对应码表,然后优化了一下程

风云龙儿的专栏 1万+

手眼标定搞定了,手眼矩阵不知道怎么用?快戳!!

手眼标定得到手眼矩阵到底该咋用? 大家好,我是小鱼。上几期给大家分享了关于手眼标定的方法,如果还有不清楚如何让进行手眼标定的同学可以参考下面的文章: 机器人手眼标定都能搞不定?快戳,最好用的手眼标定库!!! 很多同学做完了手眼标定之后得到了手眼矩阵,但是不知道怎么用于程序当中去,还有很多同学搞不清楚各个坐标系之间的关系,今天小智就给大家讲讲手眼矩阵的使用问题。 一、手眼矩阵为什么会长的不一样? 做完手眼标定,得到的手眼矩阵,有可能会长的不一样,这是因为旋转变换是有很多种表示方法的。 1.旋转的表

生活不止眼前的苟且 5342

【COMSOL】将一个面上数据导出CSV或txt格式的方法

在COMSOL中参数化扫描后,把一个面上或体里的数据按照CSV或TXT格式导出的方法。

dave496206的博客 2989

Java编码ASCII、GB2312、GBK、Unicode、UTF-8、UTF-16 编码方式详解

1 ASCII American Standard Code for Information Interchange。最早最通用的单字节编码系统,因为发明时间早,所以ASCII编码表的设计较为简单。 结构 ASCII表是单字节字符表,此表中一个(英文)字符用一个字节表示 在ASCII中从00000000(第0个)~00011111(第31个)前32被用来作为控制字符表示各种类似:响铃、退格、换页...

JavaEdge全是干货的技术号 4244

从注册到投稿:一步步教你完成KBS期刊的在线投稿流程(最新版)

本文详细介绍了如何完成KBS期刊的在线投稿流程,从账号注册到最终提交的全过程。特别针对初次使用Elsevier投稿系统的研究者,提供最新版系统的操作指南,包括投稿要求、文件格式、作者信息管理等关键步骤,帮助研究者顺利投稿至这一人工智能领域的知名期刊。

egg99的博客 1595

字符编码:Unicode、UTF-8、GBK

原文站点:https://senitco.github.io/2017/06/06/character-encoding/  简单总结各种字符集(Ascii、Unicode、GB2312)、编码(UTF8、GBK)以及不同编码之间的转换。 字符集(Charcater Set)与字符编码(Encoding)字符集(Charcater Set 或 Charset):是一个系统支持的所有抽象字符的集合,

Zachary_Co的博客 3693

S32K144 ADC硬件触发实战:PDB与TRGMUX配置避坑指南

本文深入解析了S32K144微控制器中ADC硬件触发的两种核心方案:PDB与TRGMUX。通过对比其架构差异、详细配置流程及常见问题排查,提供了从寄存器操作到DMA联动的完整优化指南,旨在帮助开发者解决多通道采样时序不稳、CPU负载过高等实际难题,实现高效稳定的数据采集。

weixin_29168153的博客 440

matinal:S4 HANA 详解ACDOCA与BSEG的区别都在这了

当你在Coding Block中添加自定义字段的时候

matinal 當冬夜漸暖 。公众号:matinal 4572

ASCII码、ISO8859-1、Unicode、GBK和UTF-8 的区别

为什么需要编码?

oyu~的博客 4314

esp32c6 开发实战:低功耗蓝牙(BLE)开发

蓝牙栈在此程序流程中已经启动并运行,但是应用程序的功能尚未定义。功能的定义是通过响应事件来实现的,当其他设备尝试读取或写入参数以及建立连接时就会触发事件回调函数处理。BT控制器在控制器端实现主机控制器接口(HCI),链路层(LL)和物理层(PHY)。BT控制器对用户应用程序不可见,并处理BLE堆栈的较低层。蓝牙堆栈(Bluedroid stack)定义了经典蓝牙(BT Classic)和低功耗蓝牙(BLE)的通用定义和API。的判断)等对于启动低功耗蓝牙来说不重要的代码,函数初始化和启用BT控制器。

月入鱼饵的博客 2740

Python有关Unicode UTF-8 GBK编码问题详解

Unicode也叫万国码、单一码,是计算机科学领域里的一项业界标准,包括字符集、编码方案等。对于世界上所有的语言文字再unicode中都可以查看到。【汉】字的编码解释官网https://www.unicode.org/cgi-bin/GetUnihanData.pl?codepoint=6C49 unicode编码就是为了统一世界上的编码,有一个统一的规范。但是它还存在一些问题。Unicode的问题 需要注意的是,Unicode只是一个符号集,它只规定了符号的二进制代码,却没有规定这个二进制代码应该如何存

16万+

从0到1构建数据分析AI Agent:数据采集、洞察生成与报告自动化

在企业数字化转型的今天,数据分析师80%的时间被消耗在重复取数、数据清洗、报表排版等低价值劳动上,真正用于深度业务洞察和决策支持的时间不足20%。本文将从核心概念、技术原理、代码实现、落地实践全维度,教你从0到1搭建一套完整的数据分析AI Agent系统,实现「用户用自然语言提需求→Agent自动采集多源数据→AI自动挖掘业务洞察→自动生成符合业务要求的多格式报告」的全链路自动化,平均可将需求响应速度从天级压缩到分钟级,释放70%以上的分析师人力成本。

AI Python 编程之道的博客 471

Android Framework 开发工程师职位深度解析与面试指南

摘要:博泰车联网科技(上海)股份有限公司招聘Android Framework开发工程师,负责车载系统的底层开发与优化。岗位要求5年以上经验,深入掌握Android Framework机制(WindowManager、PowerManager等模块),熟悉高通平台中间件架构及NDK/JNI开发,具备性能优化(启动时间、ANR处理)、OTA升级等能力。需熟练使用Android Studio、Git等工具,有车载开发经验者优先。工作内容包括Framework定制开发、问题排查及技术文档编写。

郑伟强dev的专栏 551

Python3中的编码问题(Unicode, UTF-8, GBK, ASCII)

本文章受UNICODE,GBK,UTF-8区别的极大启发,仅为巩固自己的记忆。 1. ASCII是最早的字符集,总共包含127个字符,因为是美国人发明的,127个够他们用了。 2. GBK是ASCII的扩展集,ASCII使用一个字节,即8个二进制位,来表征英文字母和一些符号,一个字节可以最多表示2的8次方即256个字符。前127个被称为ASCII字符集,后续在ASCII的基础上进行扩展,...

leavemetomorrow的博客 6568

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

ASCII、GB2312、GBK、Unicode、UTF-8、UTF-16 编码方式比较分析

实际上在日常工作开发中,中文乱码是经常出现的一类问题。下面介绍一下ASCII、GB2312、GBK、Unicode、UTF-8、UTF-16、UTF-32编码的原理以及不同点和区别。ASCIIASCII的英文翻译是:American Standard Code for Information Interchange,也就是说,ASC后的II实际上是两个首字母I的缩写,而不是罗马数字中的2。ASCII

往事散云烟,十寸光阴换一钱 3926

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

UNICODE,GBK,UTF-8区别

简单来说,unicode,gbk和大五码就是编码的值,而utf-8,uft-16之类就是这个值的表现形式.而前面那三种编码是一兼容的,同一个汉字,那三个码值是完全不一样的.如"汉"的uncode值与gbk就是不一样的,假设uncode为a040,gbk为b030,而uft-8码,就是把那个值表现的形式.utf-8码完全只针对uncode来组织的,如果GBK要转UTF-8必须先转uncode码,再转u

Lnho的专栏 2560

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

UTF-8和GBK互转问题

UTF-8和GBK互转问题

qq_27350301的博客 5139

ASCII、Unicode、UTF-8、GBK的区别与联系

ASCII ((American Standard Code for Information Interchange): 美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,到目前为止共定义了128个字符 。 Unicode:统一码(又称万国码),它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。 UTF-8(8-bit Unicode Transformation Format):是针对Unicode的一种可变长度

sc179的博客 2887

字符的编码方式 ASCII 、GBK 、UTF-8 、Unicode 、Unicode big endian

字符的编码方式很多种 ,我们常用到的是ASCII 、GBK 、UTF-8 、Unicode 、Unicode big endian等。 想查看的话,可以用记事本打开新建一个txt文档,里面输入字符或汉字,然后用UltraEdit打开,按 CTRL+h,即可查看字符的编码值。 对于英文字符,ASCII编码方式就可以全部表示,只需要0-127这128个编码值。所以ASCII编码值小于0x80,

亚亚图雷的专栏 1995

理解 GBK、Unicode、utf-8

彻底理解 GBK、Unicode、utf-8 首先说明字符集: 字符集仅仅是字符的集合,规定了每个字符的码位(也就是它们的位置), 并没有规定具体的编码方式 编码方式 将字符编码成 具体的二进制码,像gbk2312既是字符集又是具体的编码方式;Unicode是字符集,底下的utf-8才是具体的编码方式 gb2312 编码 ​ 1981年5月1日发布的简体中文汉字编码国家标准。收录7445个图形字符,其中包括6763个汉字。GB2312对汉字采用双字节编码。在进行编码之前应先设计字符集,就像ASCII码字符集

x25358的博客 1183

Unicode 和 UTF-8、GBK、GB2312的那些事儿

Unicode 和 UTF-8 Unicode 是一种字符集合,现在可容纳 100 多万个字符。是统一编码,它建立了一个全世界统一的码表。每个字符(世界上的所有文字)对应一个不同的 Unicode 编码(在这张码表中都是唯一的),但是它只规定了符号的二进制代码,却没有规定这个二进制代码在计算机中如何编码传输。 UTF-8 是一种对 Unicode 的编码方式,它是一种变长的编码方式,可以用 1~4...

逸尘的专栏 582
上一篇: Python中的字典—dict
下一篇: Java小项目-银行用户管理系统
汤米先生
博客等级 码龄6年 5345粉丝 283原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汤米先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值