`
yjf997234900.
  • 浏览: 7082 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

字符编码和字符集的区别(utf-8 utf-16,ascII,gb2312,gbk)

阅读更多
今天学习IO流,对几个编码不了解,上网查到了,奉献给大家!
1.ASCII(American Standard Code for Information Interchange)码,是一种字符集。美国标准信息交换代码是由美国国家标准学会(American National Standard Institute , ANSI )制定的,标准的单字节字符编码方案,用于基于文本的数据。起始于50年代后期,在1967年定案。它最初是美国国家标准,供不同计算机在相互通信时用作共同遵守的西文字符编码标准,它已被国际标准化组织(International Organization for Standardization, ISO)定为国际标准,称为ISO 646标准。适用于所有拉丁文字字母。ASCII 码使用指定的 7 位或 8 位二进制数组合来表示 128 或 256 种可能的字符。标准 ASCII 码也叫基础ASCII码,使用 7 位二进制数来表示所有的大写和小写字母,数字 0 到 9、标点符号, 以及在美式英语中使用的特殊控制字符。其中:
     0~31及127(共33个)是控制字符或通讯专用字符(其余为可显示字符),如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(振铃)等;通讯专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;ASCII值为 8、9、10 和 13 分别转换为退格、制表、换行和回车字符。它们并没有特定的图形显示,但会依不同的应用程序,而对文本显示有不同的影响。
32~126(共95个)是字符(32sp是空格),其中48~57为0到9十个阿拉伯数字;
  65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。
同时还要注意,在标准ASCII中,其最高位(b7)用作奇偶校验位。所谓奇偶校验,是指在代码传送过程中用来检验是否出现错误的一种方法,一般分奇校验和偶校验两种。奇校验规定:正确的代码一个字节中1的个数必须是奇数,若非奇数,则在最高位b7添1;偶校验规定:正确的代码一个字节中1的个数必须是偶数,若非偶数,则在最高位b7添1。
2.UNICODE(Universal Multiple-Octet Coded Character Set)字符集
Unicode统一码万国码单一码)是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。
    unicode有两种方式:UCS-2,UCS-4,顾名思义,是两个字节和4个字节。
  具体的可以google和百度。总的来讲,计算机前期,一般是ASCII,现在基于全球一体化,基本都用unicode。
-----------------------------
字符编码
1.Gbk,GB2312,GB18030
字符必须编码后才能被计算机处理。计算机使用的缺省编码方式就是计算机的内码。早期的计算机使用7位的ASCII编码,为了处理汉字,程序员设计了用于简体中文的GB2312和用于繁体中文的big5。
GB2312(1980年)一共收录了7445个字符,包括6763个汉字和682个其它符号。汉字区的内码范围高字节从B0-F7,低字节从A1-FE,占用的码位是72*94=6768。其中有5个空位是D7FA-D7FE。
GB2312支持的汉字太少。1995年的汉字扩展规范GBK1.0收录了21886个符号,它分为汉字区和图形符号区。汉字区包括21003个字符。2000年的GB18030是取代GBK1.0的正式国家标准。该标准收录了27484个汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字。现在的PC平台必须支持GB18030,对嵌入式产品暂不作要求。所以手机、MP3一般只支持GB2312。
从ASCII、GB2312、GBK到GB18030,这些编码方法是向下兼容的,即同一个字符在这些方案中总是有相同的编码,后面的标准支持更多的字符。在这些编码中,英文和中文可以统一地处理。区分中文编码的方法是高字节的最高位不为0。按照程序员的称呼,GB2312、GBK到GB18030都属于双字节字符集 (DBCS)。
GB 18030是中国所有非手持/嵌入式计算机系统的强制实施标准.
2.UTF-8,UTF-16,UTF-32
UTF-8, 8bit编码, ASCII不作变换, 其他字符做变长编码, 每个字符1-3 byte. 通常作为外码. 有以下优点:
* 与CPU字节顺序无关, 可以在不同平台之间交流
* 容错能力高, 任何一个字节损坏后, 最多只会导致一个编码码位损失, 不会链锁错误(如GB码错一个字节就会整行乱码)
UTF-16, 16bit编码, 是变长码, 大致相当于20位编码, 值在0到0x10FFFF之间, 基本上就是unicode编码的实现. 它是变长码, 与CPU字序有关, 但因为最省空间, 常作为网络传输的外码.
UTF-16是unicode的preferred encoding.
UTF-32, 仅使用了unicode范围(0到0x10FFFF)的32位编码, 相当于UCS-4的子集.
具体的也就这么多。呵呵。

<!--正文 end-->

<!-- <div class="reviews"><span class="fl" style="cursor:pointer;"><a onclick="openFavoulist();" id="favourer"></a> </span> <div id="favourdiv" class="support01">0人</div> <span class="fl">了这篇文章</span></div> -->
分享到:
评论

相关推荐

    C++实现判断一个字符串是否为UTF8或GBK格式的方法

    本文实例讲述了C++实现判断一个字符串是否为UTF8或GBK格式的方法。分享给大家供大家参考,具体如下: 在处理外部数据的时候,很可能因为数据格式不一样而导致乱码,甚至导致某些程序挂掉。鉴于对多数系统来说,使用...

    字符集编码工具

    支持各种字符集编码,ascii、utf-8、utf-16、GBK、GB2312等等,也支持各种进制之间的转换

    字符集和字符编码

    详细介绍几种常用文件编码格式,ASCII、GB2312、GBK、GB18030、Big5、Unicode、UTF-8、UTF-16、UTF-32

    超详细的字符编码教程

    2.4.3. Unicode字符编码所对应的存储和交换标准:UTF-8, UTF-16, UTF-32 2.4.3.1. UTF-8 2.4.3.2. Unicode与UTF-8之间的转换 2.4.3.2.1. 关于UTF-8的BOM:“EF BB BF” 2.5. 代码页Code Page 2.5.1. 什么是代码页...

    conv_gbk_ibm1388:GBKIBM1388字符集转换

    这两个字符集不能通过像Unicode在UTF-8和UTF-16之间所做的操作来直接互换。 它们基于具有不同汉字顺序的不同编码(ASCII / EBCDIC)。 ICU( )支持两种字符集,但占用空间很大。 这是一种占地面积小,快速的解决...

    CharsetUtils.java

    UTF_16BE("UTF-16BE","16 位 UCS 转换格式,Big Endian(最低地址存放高位字节)字节顺序"), UTF_16LE("UTF_16LE","16 位 UCS 转换格式,Big Endian(最低地址存放高位字节)字节顺序"), UTF_16("UTF_16","16 位 ...

    常用字符集简介

    常用字符集简介(包括ascii,gb2312,gbk,utf-8)

    JavaScript字符集编码与解码详谈

    一、字符集 1)字符与字节(Character) 字符是各种文字和符号的总称,包括乱码;一个字符对应1~n个字节,...字符集大多对应一种编码方式(例如GBK对应GBK编码),但Unicode编码有多种,包括UTF-8、UTF-16、UTF-32和UT

    浅谈python下含中文字符串正则表达式的编码问题

    这是指定一种编码格式,意味着用该编码存储中文字符(也可以是gbk、gb2312等)。 关于测试的几点注意 ——————————————– 注1:代码中有中文,就要在头部指定编码方式,如果用编辑器写代码,还要注意IDE的...

    数据库服务器字符集更改步骤

    首先设定客户端的字符集,必须以ZHS16GBK的字符集导出,然后才能在更改失败后顺利倒入新建的库。 #setenv NLS_LANG "SIMPLIFIED CHINESE_CHINA.ZHS16GBK"; #stty -istrip -parity cs8; #setenv LANG zh 拟在/sybdata...

    字符编码学习

    这里只指出,虽然都是用多个字节表示一个符号,但是GB类的汉字编码与后文的Unicode和UTF-8是毫无关系的。 3、Unicode Unicode字符集(简称为UCS),国际标准组织于1984年4月成立ISO/IEC JTC1/SC2/WG2工作组,针对...

    9节课征服「字符编码」

    ASCII、GB2312、GBK、GB18030Unicode、UTF-8、UTF-16、UTF-32

    有关于当安装maven成功后javaweb会出现几个乱码问题,都会解决

    ASCII编码是目前计算机中用得最广泛的字符集及其编码。 ISO8859-1可以表示的是西欧语言。看起来很单一为什么还在使用呢?,由于是单字节编码,和计算机最基础的表示单位一致,所以很多时候,仍旧使用ISO-8859-1编码...

    详解mysql中的字符集和校验规则

     在MySQL中,最常见的字符集有ASCII字符集、latin字符集、GB2312字符集、GBK字符集、UTF8字符集等,下面我们简单介绍下这些字符集: ASCII字符集  这个字符集使用1个字节进行编码,一个字节具有8位,总共可以保存...

    python中字符串的编码与解码详析

    GBK:国家简体中文字符集和繁体字符集,兼容ASCII,占两个字节 Unicode:能够表示全世界上所有的字符,Unicode有人说占4个字节也有人说占2个字节,但中文占2个字节 UTF-8:Unicode的压缩版,占1~3个字节,其中...

    SQLserver排序规则基本概念探索

    前言 昨天在论坛里面遇到一个比较特殊的场景。他的公司做的是海外的项目,中英再加一个当地语言,要兼容三种文字啊...后来随着计算机的流行,中国人民通过对 ASCII 编码的中文扩充改造,产生了 GB2312 编码,可以表示6

    在不同字符集数据库间导入数据的方法

    本文章主要阐述了在不同字符集数据间导入数据的方法。文中以US7ASCII的库中导出的数据导入到字符集为ZHS16GBK的库为例子作了详细的介绍。

    Java I/O输入输出流详解

     ISO8859-1:拉丁码表,西欧标准字符集,用一个字节的8位表示  GB2312:中文编码表,用两个字节来表示中文编码  GBK:中文编码表的升级,融合了更多表示中文文字符号  GB18030:GBK的取代版本  BIG-5:...

    CodeIgniter 完美解决URL含有中文字符串

    因为Web Server会在接收到一个被urlencode的URL后自动将其decode,然后在PHP里得到的这些字符串转换成他原来所代表的含义,并使用 Web Server自己的URL编码字符集(IIS6 中文版是GBK,Apache 2.2是UTF-8)传送给应用...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例051 前置运算符和后置运算符的区别 82 实例052 使用位运算对数字进行加密和解密 83 2.3 包含语句 84 实例053 提高代码重用率 84 实例054 包含数据库连接文件 85 实例055 包含网站头文件 86 实例056 包含网站尾...

Global site tag (gtag.js) - Google Analytics