Ansi、GB2312、GBK、Unicode(utf8、16、32)
关于ansi,一般默认为本地编码方式,中文应该是gb编码
他们之间的关系在这边文章里描写的很清楚;http://blog.csdn.net/ldanduo/article/details/8203532/
其中Unicode可以在百度百科中得到详细信息,及所有国家文字编码地址;http://baike.baidu.com/view/40801.htm
另Utf8、16、32只是usc的一种存储传输方式,可以说是usc的具体实现;
utf8:
采用逐个字节编码,asci内容继续使用,即继续使用一个字节来存储(最高位为0),如果是汉字及其他,则采用3、4个字节来存储,用第一个字节的高位1的个数来表示接下来几个字节代表一个汉字(包含第一个字节),高字节如果为10则表示不是字符第一个字节,第一字节只能是0、11、111及其他;具体用几个字节来存储字符,可以根据usc字符的位置经过换算来转换成utf8格式,utf8两字节可以表示11位,三字节可以表示16位;
0——7F:表示原来的asci字符,1字节存储;
:最高位1的个数表示几个字节来代表一个字符;(可表示11位长度数据)
:三字节;(可表示16位长度数据)
utf16:
可以简单的认为完全按照usc-2方式来存储数据的,即所有字符都是按照两个字节来存储;
utf32:
usc-4是所有字符都是按照4字节来编码的,但是这个编码会很浪费空间,UTF-32 是一个 UCS-4 的子集,使用32-位元的码值,只用0到10FFFF的字码空间。
这里补充一下usc-4的编码知识:usc-4如果去掉前两个字节就是usc-2;
UCS-4根据最高位为0的最高字节分成27=128个group。每个group再根据次高字节分为256个平面(plane)。每个平面根据第3个字节分为256行 (row),每行有256个码位(cell)。group 0的平面0被称作BMP(Basic Multilingual Plane)。如果UCS-4的前两个字节为全零,那么将UCS-4的BMP去掉前面的两个零字节就得到了UCS-2。每个平面有216=65536个码位。Unicode计划使用了17个平面,一共有17×65536=1114112个码位。
GB2312、GBK:
兼容ansi,即用一个字节表示英文字符;
汉字则采用两个字节来表示。
GB2312第一个字节值范围为0xA1-0xF7,第二个字节范围0xA1-0xFE;
GBK第一个字节范围0x81-FE,第二个字节值的范围为0x40-0xFE;
USC-2汉字范围为0x4E00-0x9FBF;
Ansi、GB2312、GBK、Unicode(utf8、16、32)的更多相关文章
- laravel基础课程---12、lavarel的ajax操作2(lavarel的ajax使用总结)
laravel基础课程---12.lavarel的ajax操作2(lavarel的ajax使用总结) 一.总结 一句话总结: 比较简单:就是js请求ajax,然后控制器获取请求参数,返回数据即可 1. ...
- 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3)
原文 各个 C# 版本的主要特性.发布日期和发布方式(C# 1.0 - 7.3) 本文收集各个 C# 版本的主要特性.发布日期和发布方式. C# 8.0 尚在预览版本 C# 7.3 2018 年 5 ...
- Python:requests库、BeautifulSoup4库的基本使用(实现简单的网络爬虫)
Python:requests库.BeautifulSoup4库的基本使用(实现简单的网络爬虫) 一.requests库的基本使用 requests是python语言编写的简单易用的HTTP库,使用起 ...
- 线段树扫描线(一、Atlantis HDU - 1542(覆盖面积) 二、覆盖的面积 HDU - 1255(重叠两次的面积))
扫描线求周长: hdu1828 Picture(线段树+扫描线+矩形周长) 参考链接:https://blog.csdn.net/konghhhhh/java/article/details/7823 ...
- 从C# String类理解Unicode(UTF8/UTF16)
上一篇博客:从字节理解Unicode(UTF8/UTF16).这次我将从C# code 中再一次阐述上篇博客的内容. C# 代码看UTF8 代码如下: string test = "UTF- ...
- 编码(2)从字节理解Unicode(UTF8/UTF16)
https://www.cnblogs.com/zizifn/p/4716712.html 从字节理解Unicode(UTF8/UTF16) 如果你不知道或者不了解什么是Unicode/UTF8/UT ...
- 水声通信(传声)于iOS、Android在情景-depth分析(包括一些声通信源)
最近的水声通信非常热,特别是,非常嵌入式设备备受瞩目使用,前段时间公布了声通信部分源代码(iOS和Android版本号.下载源的最新版本:点击打开链接 http://download.csdn.net ...
- ActiveX、OLE和COM的关系(转自百度文档)
比较流行的组件模型有COM(Component Object Model,对象组件模型)/DCOM(Distributed COM,分布式对象组件模型)和CORBA(Common Object Req ...
- 重读《深入理解Java虚拟机》六、Java泛型 VS C#泛型 (伪泛型 VS 真泛型)
一.泛型的本质 泛型是参数化类型的应用,操作的数据类型不限定于特定类型,可以根据实际需要设置不同的数据类型,以实现代码复用. 二.Java泛型 Java 泛型是Java1.5新增的特性,JVM并不支持 ...
随机推荐
- Oauth2.0协议曝漏洞 大量社交网站隐私或遭泄露
2014年是IT业界不平常的一年,XP停服.IE长老漏洞(秘狐)等等层出不穷,现在,社交网络也爆出惊天漏洞:Oauth2.0协议漏洞 继OpenSSL漏洞后,开源安全软件再曝安全漏洞.新加坡南洋理工大 ...
- 关于Unity实现游戏录制功能的思考
录制无非两种做法,录制操作和录制行为. 录制操作要考虑到随机行为,但其实也可以两者混合.如果随机行为过多,并且随机行为无法用种子复现,可以完全用录制的方式 最后再统一压缩 这里yy的就是录制行为的做法 ...
- [svc]linux常用手头命令-md版-2017年11月12日 12:31:56
相关代码 curl命令-网站如果3次不是200或301则报警 curl -o /dev/null -s -w "%{http_code}" baidu.com -k/--insec ...
- TLS线程局部存储
0x01 TLS (Thread Local Storage) 为线程单独提供的私有空间 0x02 gcc中的隐式TLS使用方法 隐式TLS __thread int number; 显式TLS pt ...
- python学习之logging模块
Logger.setLevel(level) 设置记录器的级别为level.低于该级别的信息将被忽略. 记录器默认级别为NOTSET.如果记录器是根记录器,则默认将记录所有信息: 如果是一个非根记录器 ...
- c# 遇到的问题,求解?
c# cannot evaluate expression because the code of the current method is optimized.
- RTT第一个工程
第一个RTT工程 1. 配置工程 选择芯片STM32F103C8(其包含该芯片的Flash及SRAM介绍): Jlink SW模式 output->Debug info/Browse info ...
- 通用采集器Modbus协议应用
1. 功能码 通用采集器一般包含DI,DO,AI相关接口,对此类接口主要应用功能码01~06. 3类接口具体对应关系如下: 继电器定义,功能码01/05(01:读线圈,05写线圈) 序号 ...
- windows7 mongodb 安装急遇到的问题
偶尔上一次博客园,才发现自己这么久没有写东西了.今天更新一篇. 作为前端开发者,node.js 无非是一个强心剂.有了node.js 后端开发变得不需要再搞另一门语言,一个javascript 就能搞 ...
- cannot be translated into a null value due to being declared as a primitive type. Consid
严重: Servlet.service() for servlet [note-portal] in context with path [] threw exception [Request pro ...