一句话理解字符编码(Unicode ,UTF8,UTF16)

  Unicode和ASCII码属于同一级别的,都是字符集,字符集规定从1到这个字符集的最大范围每个序号都各表示什么意思。比如ASCII字符集中序号65表示“A”。

那接下来的UTF8和UTF16就相当于我们在计算机中怎么表示这个序号了。这就好比,通常情况下我们用十进制表示数字(1表示一个,2表示两个)。但是有时候我们也会根据情况用二进制,八进制,十六进制表示。

UTF8编码规则表示一个序号可能用一个字节/两个字节/三个字节来表示。UTF16编码规则表示一个序号只会用两个字节表示。其他的编码规则例如GB2312/GBK也都类似。

  最后,可以用一句话理解并记住他们的区别:把UTF8/UTF16/GB2312/GBK编码规则理解成一种进制,解析的时候把他们转换成十进制然后查询字符集表即可。

转载请注明出处。

原文地址:https://www.cnblogs.com/DeepFlavor/p/8277462.html

时间: 2024-10-10 21:55:02

一句话理解字符编码(Unicode ,UTF8,UTF16)的相关文章

【字符编码】彻底理解字符编码

一.前言 在解决昨天的问题时,又引出了很多新的问题,如为什么要进行编码,这些编码的关系如何,如ASCII,IOS-8859-1,GB2312,GBK,Unicode之间的关系,笔者想要彻底理解字符编码背后的故事,遂进行了探索,具体笔记如下.如园友能读完本篇文章,我相信会解开很多疑惑. 二.字符编码 2.1 为何需要编码? 我们知道,所有的信息最终都表示为一个二进制的字符串,每一个二进制位(bit)有0和1两种状态.当我们需要把字符'A'存入计算机时,应该对应哪种状态呢,存储时,我们可以将字符'A

【字符编码】彻底理解字符编码(转)

原文:http://www.cnblogs.com/leesf456/p/5317574.html 一.前言 在解决昨天的问题时,又引出了很多新的问题,如为什么要进行编码,这些编码的关系如何,如ASCII,IOS-8859-1,GB2312,GBK,Unicode之间的关系,笔者想要彻底理解字符编码背后的故事,遂进行了探索,具体笔记如下.如园友能读完本篇文章,我相信会解开很多疑惑. 二.字符编码 2.1 为何需要编码? 我们知道,所有的信息最终都表示为一个二进制的字符串,每一个二进制位(bit)

ubuntu上修改mysql的默认字符编码为utf8

udo gedit  /etc/mysql/my.cnf: 在[client]下添加: default-character-set=utf8 [mysqld]下添加 default-character-set=utf8 collation-server=utf8_general_ci 然后保存退出. 重启mysql sudo service mysql restart ubuntu上修改mysql的默认字符编码为utf8,布布扣,bubuko.com

C++ Builder 的 JSON 解析和生成,包括自带的 JSON 和第三方的 jsoncpp,支持 UNICODE (UTF-8 / UTF-16)

C++ Builder 自带的 JSON 处理,支持 UNICODE (UTF-8 / UTF-16): http://www.cppfans.com/cbknowledge/skills/files/json.asp JSON 解析和生成 - 文件处理 ? JSON 解析方法和规则,读取 JSON 里面特定的值,JSON 类的继承关系 ? JSON 类 TJSONValue|TJSONObject|TJSONPair|TJSONArray|TJSONString|TJSONNumber|TJS

Linux下修改MySQL数据库字符编码为UTF-8解决中文乱码

由于MySQL编码原因会导致数据库出现乱码. 解决办法: 修改MySQL数据库字符编码为UTF-8,UTF-8包含全世界所有国家需要用到的字符,是国际编码. 具体操作: 1.进入MySQL控制台 >mysql -uroot -p #输入密码进入 >status; #查看当前MySQL运行状态,如下图所示: 2.修改mysql配置文件 [[email protected] ~]# vi /etc/my.cnf #在[client]段增加下面代码 default-character-set=utf

彻底搞懂字符编码(unicode,mbcs,utf-8,utf-16,utf-32,big endian,little endian...)[转]

最近有一些朋友常问我一些乱码的问题,和他们交流过程中,发现这个编码的相关知识还真是杂乱不堪,不少人对一些知识理解似乎也有些偏差,网上百度, google的内容,也有不少以讹传讹,根本就是错误的(例如说 unicode编码是两个字节),各种软件让你选择编码的时候,常常是很长的一个选单,让用户不知道该如何选.基于这样的问题,我就写下我的理解吧,一方面帮助一些需要帮助的人纠正认识,一方面作为自己以后备查的资料. 1. ASCII(American Standard Code for Informati

【字符集及字符编码】UTF-8、UTF-16和UTF-32

UTF-32 用 4 个字节存储每一个字符,以保证能把 UCS 完全表达出来.但实际上 UCS 的字符数量根本不需要用 32 位表示,UTF-32 极大地浪费了空间.另外,由于组合字符的存在,定长表示并不能如预期那样迅速地定位字符,反正就是超级不好用. UTF-16 将 UCS 映射为 16 长的整数,用于数据存储或传输.UCS 的码位,需要 1 个或 2 个 16 位的码来表示,因此这是一个变长表示.另外,UTF-16 也需要指定字节序.Java 和 C# 里的字符串表示就是用的 UTF-16

字符编码unicode,utf-8和ascii

Ascii编码 由于计算机是美国人发明的,因此,最早只有127个字符被编码到计算机里,也就是大小写英文字母.数字和一些符号,这个编码表被称为ASCII编码,比如大写字母A的编码是65,小写字母z的编码是122. 但是要处理中文显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去. 你可以想得到的是,全世界有上百种语言,日本把日文编到Shift_JIS里,韩国把韩文编到Euc-kr里,各国有各国的标准,就会不可避免地出现冲突,结

刨根究底字符编码之十三——UTF-16编码方式

UTF-16编码方式 1. UTF-16编码方式源于UCS-2(Universal Character Set coded in 2 octets.2-byte Universal Character Set).而UCS-2,是早期遗留下来的历史产物. UCS-2将字符编号(即码点值)直接映射为字符编码(CEF,而非CES,详见前文中对现代字符编码模型的解释),亦即字符编号就是字符编码,中间没有经过特别的编码算法转换.因此,从现代字符编码模型的角度来看的话,此时并没有将编号字符集CCS与字符编码