篮球外围下注_篮球投注导航_[所有网址]

篮球外围下注_篮球投注导航_[所有网址]是该公司为打造信誉第一,2014最新体验金,篮球外围下注_篮球投注导航_[所有网址]这里的所有老虎机游戏及真人百家乐游戏都具有欧洲风格,致力成为最具传播力和互动性的娱乐城网站。

关于Unicode字符集

2019-08-03 19:57 来源:未知

ASCII与Unicode

转自:

最初的unicode编码是固定长度的,16位,也就是2两个字节代表一个字符,这样一共可以表示65536个字符。显然,这样要表示各种语言中所有的字符是远远不够的。Unicode4.0规范考虑到了这种情况,定义了一组附加字符编码,附加字符编码采用2个16位来表示,这样最多可以定义1048576个附加字符,目前unicode4.0只定义了45960个附加字符。

=========

最初的unicode编码是固定长度的,16位,也就是2两个字节代表一个字符,这样一共可以表示65536个字符。显然,这样要表示各种语言中所有的字符是远远不够的。Unicode4.0规范考虑到了这种情况,定义了一组附加字符编码,附加字符编码采用2个16位来表示,这样最多可以定义1048576个附加字符,目前unicode4.0只定义了45960个附加字符。

Unicode只是一个编码规范,目前实际实现的unicode编码只要有三种:UTF-8,UCS-2和UTF-16,三种unicode字符集之间可以按照规范进行转换。

一、ASCⅡ

Unicode只是一个编码规范,目前实际实现的unicode编码只要有三种:UTF-8,UCS-2和UTF-16,三种unicode字符集之间可以按照规范进行转换。

 

1>. 关于ASCⅡ

 

UTF-8

  ASCII(American Standard Code for Information Interchange,美国信息互换标准代码)

UTF-8

UTF-8是一种8位的unicode字符集,编码长度是可变的,并且是ASCII字符集的严格超集,也就是说ASCII中每个字符的编码在UTF-8中是完全一样的。UTF-8字符集中,一个字符可能是1个字节,2个字节,3个字节或者4个字节长。一般来说,欧洲的字母字符长度为1到2个字节,而亚洲的大部分字符则是3个字节,附加字符为4个字节长。

  ASCII一共包含128个字符, 包括: 33个控制符号, 1个空格, 32个符号, 10个数字, 26个小写字母和26个大写字母。每个ASCII字符采用7位二进制编码的方式。

UTF-8是一种8位的unicode字符集,编码长度是可变的,并且是ASCII字符集的严格超集,也就是说ASCII中每个字符的编码在UTF-8中是完全一样的。UTF-8字符集中,一个字符可能是1个字节,2个字节,3个字节或者4个字节长。一般来说,欧洲的字母字符长度为1到2个字节,而亚洲的大部分字符则是3个字节,附加字符为4个字节长。

Unix平台中普遍支持UTF-8字符集,HTML和大多数浏览器也支持UTF-8,而window和java则支持UCS-2。

   ASCII的优点:

Unix平台中普遍支持UTF-8字符集,HTML和大多数浏览器也支持UTF-8,而window和java则支持UCS-2。

UTF-8的主要优点:

    十分可靠, 普遍扎根在我们的键盘、显示器、系统硬件、打印机、操作系统等, 用途十分广泛。

UTF-8的主要优点:

  • 对于欧洲字母字符需要较少的存储空间。
  • 容易从ASCII字符集向UTF-8迁移。

   ASCII的缺点:

  • 对于欧洲字母字符需要较少的存储空间。
  • 容易从ASCII字符集向UTF-8迁移。

UCS-2

    ASCII, 美国信息互换标准代码, 美国原生, 不能满足其他国家文字的需求, 例如, 中国的汉字?英国的英镑符号(£)?等, 这些在ASCII都是找不到的。

UCS-2

UCS-2是固定长度为16位的unicode字符集。每个字符都是2个字节,UCS-2只支持unicode3.0,所以不支持附加字符。

 

UCS-2是固定长度为16位的unicode字符集。每个字符都是2个字节,UCS-2只支持unicode3.0,所以不支持附加字符。

UCS-2的优点:

2>. 对ASCII的扩展

UCS-2的优点:

  • 对于亚洲字符的存储空间需求比UTF-8少,因为每个字符都是2个字节。
  • 处理字符的速度比UTF-8更快,因为是固定长度编码的。
  • 对于windows和java的支持更好。

  由于ASCII不能很好的满足其他国家文字的需求, 所以人们迫切希望能对ASCII进行改进。

  • 对于亚洲字符的存储空间需求比UTF-8少,因为每个字符都是2个字节。
  • 处理字符的速度比UTF-8更快,因为是固定长度编码的。
  • 对于windows和java的支持更好。

UTF-16

 

UTF-16

UTF-16也是一种16位编码的字符集。实际上,UTF-16就是UCS-2加上附加字符的支持,也就是符合unicode4.0规范的UCS-2。所以UTF-16是UCS-2的严格超集。

  ①. 国际化标准组织的扩展方案

UTF-16也是一种16位编码的字符集。实际上,UTF-16就是UCS-2加上附加字符的支持,也就是符合unicode4.0规范的UCS-2。所以UTF-16是UCS-2的严格超集。

UTF-16中的字符,要么是2个字节,要么是4个字节表示的。UTF-16主要在windows2000以上版本使用。

     1967年, 国际化标准组织( ISO, International Organization for Standardization )推荐了ASCII的一个变种, 改动内容包括: 从ASCII中, 拿出 0x40('@'),、0x5B('[')、0x5C('')、0x5D(']')、0x5E('^')、0x60(' ' ')、0x7B('{')、0x7C('¦')、0x7D('}')、0x7E('~')这10个符号保留给各个国家单独使用。这显然不是解决ASCII国际化的好方法, 首先, 其他国家将这些保留字符重新定义为自己国家需要的字符后, 那么国际上的一致性将不能得到保证, 此外, 10个保留字符远远不能满足美国的东方的一些国家使用的象形文字需求, 比如我们中国的汉字。

UTF-16中的字符,要么是2个字节,要么是4个字节表示的。UTF-16主要在windows2000以上版本使用。

UTF-16相对UTF-8的优点,和UCS-2是一致的。

 

UTF-16相对UTF-8的优点,和UCS-2是一致的。

Oracle从7.0开始提供对Unicode的支持。Oracle个版本的unicode字符集支主要有:

  ②. IBM公司的扩展方案

Oracle从7.0开始提供对Unicode的支持。Oracle个版本的unicode字符集支主要有:

AL32UTF8

     IBM公司采用了使用8位二进制编码方式来表示ASCII, 使用一个字节来储存字符, 这样, 相对于7位的ASCII就可以多出128个额外字符空位来补充ASCII。

AL32UTF8

一种UTF-8编码的字符集,支持最新的unicode4.0标准。字符长度为1,2或者3个字节,附加字符则为4字节长。

 

一种UTF-8编码的字符集,支持最新的unicode4.0标准。字符长度为1,2或者3个字节,附加字符则为4字节长。

UTF8

     IBM对ASCII的主要扩展为: 补充了一些重音字符、小写希腊字母、块图字符和线图字符。同时, 还将一些补充的字符分配到ASCII的一些不必要的控制字符上。

UTF8

支持unicode3.0的UTF-8编码方式。由于附加字符是在unicode3.1中提出的,UTF8不支持附加字符。但是unicode3.0已经为附加字符预留了编码空间,所以即使在UTF8的数据库中插入附加字符,也是可以的,只是数据库会将该字符分隔成两部分,需要占6个字符的长度。所以,如果需要支持附加字符,那么建议将数据库的字符集切换为新的AL32UTF8。

 

支持unicode3.0的UTF-8编码方式。由于附加字符是在unicode3.1中提出的,UTF8不支持附加字符。但是unicode3.0已经为附加字符预留了编码空间,所以即使在UTF8的数据库中插入附加字符,也是可以的,只是数据库会将该字符分隔成两部分,需要占6个字符的长度。所以,如果需要支持附加字符,那么建议将数据库的字符集切换为新的AL32UTF8。

UTF8可用于数据库字符集,也可用于国家字符集。

     (注: 在操作系统还是字符模式的年代, 块图字符和线图字符常用来被应用软件装饰自己的程序显示)

UTF8可用于数据库字符集,也可用于国家字符集。

UTFE

 

UTFE

UTFE是基于EBCDIC平台的unicode字符集,就像ASCII平台上的UTF8一样。不同的是,UTFE中,每个字符可能占1,2,3或者4个字节,而附加字符则需要2个4个字节,也就是8个字节来表示。

  ③. 微软公司的扩展方案

UTFE是基于EBCDIC平台的unicode字符集,就像ASCII平台上的UTF8一样。不同的是,UTFE中,每个字符可能占1,2,3或者4个字节,而附加字符则需要2个4个字节,也就是8个字节来表示。

AL16UTF16

     1985年11月, Windows 1.0发布, 微软采用了自己定义的一套字符集, 这套字符集被称为"ANSI字符集", 是基于ANSI和ISO标准的一个草案。

AL16UTF16

AL16UTF16是一种UTF-16编码的unicode字符集,在Oracle中用于国家字符集。

 

AL16UTF16是一种UTF-16编码的unicode字符集,在Oracle中用于国家字符集。

AL24UTFFSS

     在MS-DOS 3.3时代(1987年4月), 微软为了使不同国家的计算机都能正常的显示字符, 微软采用了代码页概念, 不同国家的字符被规定在不同的代码页上, 例如代码页第437页为美国英语, 850页为拉丁语-1。用户只要将代码页设置到自己所在的国家就能正常的进行工作, 但是如果用户尝试着将自己的文档拿到与另外一个使用不同代码页的用户的计算机上进行修改时, 自己的文档的某些字符将会显示成其他字符, 这还算好, 有解决方案, 应用软件可以通过将代码页信息储存到文件中, 使用时再进行一些代码页的转换。

AL24UTFFSS

该字符集只支持unicode1.1规范,在Oracle7.2~8i版本中使用,目前已经淘汰。

 

该字符集只支持unicode1.1规范,在Oracle7.2~8i版本中使用,目前已经淘汰。

 

     但在后来, 随着代码页数量的剧增, Windows版本的不断升级, 代码页的混淆问题开始日益凸显, DS-DOS的代码页和Windows的代码页以及其他Windows版本的系统发生了不兼容, 例如MS-DOS代码页第855页西里尔语在Windows中的1251页西里尔语或者Macintosh的第10007页西里尔语还都不一样。

 

CString在Unicode下一个字节占16bit,在ascii下占8bit,改成char数组后在什么环境下都一样的

 

CString在Unicode下一个字节占16bit,在ascii下占8bit,改成char数组后在什么环境下都一样的

 

     微软为了解决东方一些国家使用的象形文字问题, 使用了双字节字符集, 这些字符集同样在不同的代码页, 代码页936(简体中文)、949(韩文)、950(繁体中文)以及932(日文)。微软的这个双字节字符集和你象形的可能有所不同, 在这个双字节字符集中, 前128个字符仍然是ASCII(1字节), 较高的128个扩展字符以跟随第二个字节的方式用来表示象形文字(这两个字节被称为前导字节和尾随字节)。

 

编写程序最好是:同一个源文件既可以在UNICODE下编译,又可以在ANSI下编译

     所以在这个代码页中, 有一个字节的字符, 还有2个字节的字符, 这就导致了两个严重的问题:

编写程序最好是:同一个源文件既可以在UNICODE下编译,又可以在ANSI下编译

工程--设置--C/C --预处理器,可以定义标识符,如UNICODE,_UNICODE,标识是按ASCII编译,还是按UNICODE编译

       1>. 在一段字符串中, 字符串的长度不能根据字节的个数确定, 要想确定字符串的长度必须检查每个字节是不是双字节字符的前导字节。

工程--设置--C/C --预处理器,可以定义标识符,如UNICODE,_UNICODE,标识是按ASCII编译,还是按UNICODE编译

#include <tchar.h>

       2>. 通过任意指向字符串中的一个指针, 无法知道前一个字符的地址, 通常要回到字符串的开始, 一直解析到指针所在的位置。

#include <tchar.h>

char定义全部 改成TCHAR,TCHAR根据设置不同定义为char或者wchar
字符串加用TEXT宏,如TEXT("你好"),根据编译器的设置不同,分别定义为ANSI或者UNICODE版本
字符串也大部分有其通用版本:

 

char定义全部 改成TCHAR,TCHAR根据设置不同定义为char或者wchar
字符串加用TEXT宏,如TEXT("你好"),根据编译器的设置不同,分别定义为ANSI或者UNICODE版本
字符串也大部分有其通用版本:

最大长度版比标准版多一个参数,表示缓冲区的长度
有v的其参数为参数列表指针,使用va_list、va_start和va_end宏

TAG标签: 篮球外围下注
版权声明:本文由篮球外围下注发布于系统,转载请注明出处:关于Unicode字符集