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并不支持 ...
随机推荐
- DDR3调试总结
DDR3调试总结 本文为原创,转载请注明作者与出处 http://blog.csdn.net/hanfei_1/article/details/70546010 以前同是DDR3的无知少年,由于项目需 ...
- phoenix查询缓慢问题
现象:phoenix刚建表时查找很快,随着数据导入越来越多,查询越来越缓慢,执行explain这个表的计划都需要好几秒,但在hbase shell里查询很快 问题定位:这个是由于system.stat ...
- OpenGL数据类型及相应C数据类型
- IOS使用Charts
近期项目中要做图表功能,为了降低开发量採用的是H5+ECharts来做.这里说一下IOS中怎样使用ECharts以及遇到的问题. 网络模块化单文件引入 <!DOCTYPE html> &l ...
- hdoj 1288 Hat's Tea
Hat's Tea Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total S ...
- ecshop3.0.0 release0518 SQL注入
bugscan上的漏洞,自己复现了一下 注入在根目录下的flow.php elseif ($_REQUEST['step'] == 'repurchase') { include_once('incl ...
- Unity3D 5中增加WebGL 播放插件
http://www.csdn.net/article/2014-03-18/2818822-Unity-5-game-engine 其实我是搞3d的,这篇文章里所有的术语看了都有很强的亲切感. Un ...
- 【Mac + Python + Selenium】之PyCharm配置Selenium自动化
一.安装PyCharm 1.下载地址: Pycharm编辑器官网下载地址 2.安装完成之后打开,一路下去点击,直到填写注册码,参考: <[转载][Pycharm编辑器破解步骤]之idea和Pyc ...
- php 判断是否在微信浏览器中打开
<?php $a=false; $b=$_SERVER['HTTP_USER_AGENT']; if(strpos($b,"MicroMessenger")===false) ...
- python 2个版本如何共存
我们在安装Python3(>=3.3)时,Python的安装包实际上在系统中安装了一个启动器py.exe,默认放置在文件夹C:\Windows\下面.这个启动器允许我们指定使用Python2还是 ...