unicode字符集(unicode字符集是几个字节表示一个字符为什么需要utf-8)

2023-10-15 23:00:07 108

unicode字符集(unicode字符集是几个字节表示一个字符为什么需要utf-8)

本文目录

unicode字符集是几个字节表示一个字符为什么需要utf-8

  • 一到四个字节表示一个字符,utf-8是一到两个字节,为了显示亚洲的等字符,比如中文,日文,所以要用unicode,utf-8是unicode的一种

  • UTF-8, 都是由 1~4 字节组成的, 至于是多少字节, 是根据第一个字节的内容判断的。 UNICODE 是一个超集, 内包含 UTF-8, UTF-16, UTF-32, UTF-8 最少 1 字节, UTF-16最少 2 字节, 如此类推。 全英文环境上,UTF-8 的优势是字节少, 相对传送效率高。 至于 VC++ UNICODE 编程, 类如 CString 等规定是 2 字节 16-bit 组成, 个人认为是一种误导与错误概念。 只不过微软公司 WINDOWS 独大, 可以自己歪曲标准, 这也是没有办法, 真有委屈承受, 或是改用 LINUX。

unicode 是几个字节

unicode是2个字节。

这一标准的2字节形式通常称作UCS-2。然而,受制于2字节数量的限制,UCS-2只能表示最多65536个字符。Unicode的4字节形式被称为UCS-4或UTF-32,能够定义Unicode的全部扩展,最多可定义100万个以上唯一字符。2016-06-21颁发的Unicode9,0共收录128,237个字。

Unicode是一种字符集,Unicode的学名是“UniversalMultiple-OctetCodedCharacterSet”,简称为UCS。UCS可以看作是“UnicodeCharacterSet”的缩写。

扩展资料

unicode的使用

1、使用代码页(Codepage)转换表的技术来过渡性的部分解决这一问题,即通过指定的转换表将非 Unicode 的字符编码转换为同一字符对应的系统内部使用的 Unicode 编码。

2、可以在“语言与区域设置”中选择一个代码页作为非 Unicode 编码所采用的默认编码方式,如936为简体中文GBK,950为繁体中文Big5(皆指PC上使用的)。

参考资料来源:百度百科—Unicode

unicode字符集是多少位的字符编码

unicode编码用2个字节存储字符。

2个字节=16个bit,即16位二进制编码。

注意:一个bit=一位二进制。

最初的unicode编码是固定长度的,16位,也就是2两个字节代表一个字符,这样一共可以表示65536个字符。显然,这样要表示各种语言中所有的字符是远远不够的。

Unicode4.0规范考虑到了这种情况,定义了一组附加字符编码,附加字符编码采用2个16位来表示,这样最多可以定义1048576个附加字符,目前unicode4.0只定义了45960个附加字符。

扩展资料:

字母和数字的 ASCII 码的记忆是非常简单的。我们只要记住了一个字母或数字的 ASCII 码(例如记住 A 为 65 , 0 的 ASCII 码为 48 ),知道相应的大小写字母之间差 32 ,就可以推算出其余字母、数字的 ASCII 码。

虽然标准 ASCII 码是 7 位编码,但由于计算机基本处理单位为字节( 1byte = 8bit ),所以一般仍以一个字节来存放一个 ASCII 字符。每一个字节中多余出来的一位(最高位)在计算机内部通常保持为 0 (在数据传输时可用作奇偶校验位)。

参考资料来源:百度百科-字符编码

Unicode详解

字符编码的问题,每个程序员都会遇到,深入探索其背后的原理和机制,能让我们少走很多弯路。

Unicode 万国码 国际码 统一码 单一码 )是计算机科学领域里的一项业界标准。它对世界上大部分的文字系统进行了整理、编码,使得电脑可以用更为简单的方式来呈现和处理文字。

Unicode发展由非营利机构统一码联盟负责,该机构致力于让Unicode方案替换既有的字符编码方案。因为既有的方案往往空间非常有限,亦不适用于多语环境。

统一码联盟在1991年首次发布了 The Unicode Standard

在2005年,Unicode的第十万个字元被引入成为标准之一,该字元被用于马拉雅拉姆语。

目前实际应用的统一码版本对应于UCS-2,使用16位的编码空间。也就是每个字符占用2个字节。这样理论上一共最多可以表示2的16次(即65536)个字符。基本满足各种语言的使用。实际上当前版本的统一码并未完全使用这16位编码,而是保留了大量空间以作为特殊使用或将来扩展。

最新(但未实际广泛使用)的统一码版本定义了16个辅助平面,两者合起来至少需要占据21位的编码空间,比3字节略少。但事实上辅助平面字符仍然占用4字节编码空间,与UCS-4保持一致。未来版本会涵盖UCS-4的所有字符。UCS-4是一个更大的尚未填充完全的31位字符集,加上恒为0的首位,共需占据32位,即4字节。理论上最多能表示2的31次方个字符,完全可以涵盖一切语言所用的符号。

通用字符集 (Universal Character Set)是由ISO制定的 ISO 10646 (或称 ISO/IEC 10646 )标准所定义的标准字符集。

通用字符集包括了其他所有字符集。它保证了与其他字符集的双向兼容,即,如果你将任何文本字符串翻译到UCS格式,然后再翻译回原编码,你不会丢失任何信息。

UCS包含了已知语言的所有字符。除了拉丁语、希腊语、斯拉夫语、希伯来语、阿拉伯语、亚美尼亚语、格鲁吉亚语,还包括中文、日文、韩文这样的方块文字,UCS还包括大量的图形、印刷、数学、科学符号。

ISO/IEC 10646定义了一个31位的字符集。

并不是所有的系统都需要支持像组合字符这样的的先进机制。因此ISO 10646指定了如下三种实现级别:

历史上存在两个独立的尝试创立单一字符集的组织,即:

1、国际标准化组织(ISO)于1984年创建的ISO/IEC

2、统一码联盟

统一码联盟和ISO/IEC都同意保持两者标准的码表兼容,并紧密地共同调整任何未来的扩展。

Unicode的实现方式不同于编码方式。一个字符的Unicode编码是确定的。但是在实际传输过程中,由于不同系统平台的设计不一定一致,以及出于节省空间的目的,对Unicode编码的实现方式有所不同。

Unicode的实现方式称为 Unicode转换格式 (Unicode Transformation Format,简称为 UTF )。

前面说到,Unicode采用2个字节来编码文件,但是如果一个仅包含7位ASCII字符的Unicode文件,每个字符使用2字节就浪费了一般的存储空间,其第一字节的8位始终为0,这是难以忍受。对于这种情况,可以使用UTF-8编码,这是一种变长编码,它将基本7位ASCII字符仍用7位编码表示,占用一个字节(首位补0)。而遇到与其他Unicode字符混合的情况,将按一定算法转换,每个字符使用1-3个字节编码,并利用首位为0或1进行识别。

问题来了,UTF-8变长编码格式的出现是为了节省存储空间,变长导致了UTF-8的兼容性相应降低。

类似的,对未来会出现的需要4个字节的辅助平面字符和其他UCS-4扩充字符,2字节编码的UTF-16也需要通过一定的算法进行转换。

也就是说,UTF-16是为未来准备的变长编码格式。

还有就是,在Mac和普通PC上,对于字节顺序的理解是不一致的。这时同一字节流可能会被解释为不同内容,如某字符为十六进制编码4E59,按两个字节拆分为4E和59,在Mac上读取时是从低字节开始,那么在Mac OS会认为此4E59编码为594E,找到的字符为“奎”,而在Windows上从高字节开始读取,则编码为U+4E59的字符为“乙”。就是说在Windows下以UTF-16编码保存一个字符“乙”,在Mac OS环境下打开会显示成“奎”。此类情况说明UTF-16的编码顺序若不加以人为定义就可能发生混淆。

于是在UTF-16编码实现方式中使用了 大端序 (Big-Endian,简写为UTF-16 BE)、 小端序 (Little-Endian,简写为UTF-16 LE)的概念,以及可附加的字节顺序记号解决方案,目前在PC机上的Windows系统和Linux系统对于UTF-16编码默认使用UTF-16 LE。目前在PC机上的Windows系统和Linux系统对于UTF-16编码默认使用UTF-16 LE。

在Windows XP附带的记事本,“另存为”对话框可以选择的四种编码方式除去非Unicode编码的ANSI(对于英文系统即ASCII编码),中文系统则为GB2312或Big5外,其余三种为“Unicode”(对应UTF-16 LE)、“Unicode big endian”(对应UTF-16 BE)和“UTF-8”。

UTF-8,是我们最经常看到的编码格式之一。前面已经简单介绍过,这是一种变长编码格式,变长的目的是节省存储空间。

UTF-8使用一至六个字节为每个字符编码(2003年11月UTF-8被RFC 3629重新规范,只能使用原来Unicode定义的区域,U+0000到U+10FFFF,也就是说最多四个字节)。

下面介绍其编码规则:

1、128个US-ASCII字符只需一个字节编码(Unicode范围由U+0000至U+007F)。

2、带有附加符号的拉丁文、希腊文、西里尔字母、亚美尼亚语、希伯来文、阿拉伯文等则需要两个字节编码(Unicode范围由U+0080至U+07FF)。

3、其他基本多文种平面(BMP)中的字元(这包含了大部分常用字,如大部分的汉字)使用三个字节编码(Unicode范围由U+0800至U+FFFF)。

4、其他极少使用的Unicode 辅助平面的字元使用四至六字节编码。(Unicode范围由U+10000至U+1FFFFF使用四字节,Unicode范围由U+200000至U+3FFFFFF使用五字节,Unicode范围由U+4000000至U+7FFFFFFF使用六字节)。

对上述提及的第四种字元而言,UTF-8使用四至六个字节来编码似乎太耗费资源了。但UTF-8对所有常用的字元都可以用三个字节表示,而且它的另一种选择,UTF-16编码,对前述的第四种字符同样需要四个字节来编码,所以要决定UTF-8或UTF-16哪种编码比较有效率,还要视所使用的字元的分布范围而定。

下面来看看UTF-8具体怎么编码各种类型的字符:

1、单字节编码,字节由零开始:0zzzzzzz。(z取值0或1,下同)

2、两字节编码:(110yyyyy 10zzzzzz)第一个字节由110开始,接着的字节由10开始

3、三字节编码:(01110xxxx10yyyyyy 10zzzzzz)第一个字节由1110开始,接着的字节由10开始。

4、四字节编码:(11110www 10xxxxxx 10yyyyyy 10zzzzzz)将由11110开始,接着的字节由10开始

UTF-16 是Unicode字符编码五层次模型的第三层:字符编码表。即把Unicode字符集的抽象码位映射为16位长的整数,用于数据存储或传递。Unicode字符的码位,需要1个或者2个16位长的码元来表示,因此这是一个变长表示。

Unicode的编码空间从U+0000到+10FFFF,共有1,112,064个码位(code point)可用来映射字符. Unicode的编码空间可以划分为17个平面(plane),每个平面包含216(65,536)个码位。17个平面的码位可表示为从U+xx0000到U+xxFFFF,其中xx表示十六进制值从0016到1016,共计17个平面。第一个平面称为 基本多语言平面 (Basic Multilingual Plane, BMP ),或称第零平面(Plane 0)。其他平面称为 辅助平面 (Supplementary Planes)。基本多语言平面内,从U+D800到U+DFFF之间的码位区段是永久保留不映射到Unicode字符。UTF-16就利用保留下来的0xD800-0xDFFF区段的码位来对辅助平面的字符的码位进行编码。

分平面来介绍UTF-16的实现方式:

1、第一个Unicode平面(码位从U+0000至U+FFFF)包含了最常用的字符。该平面被称为基本多语言平面,缩写为 BMP (Basic Multilingual Plane, BMP)。UTF-16与 UCS-2 编码这个范围内的码位为16比特长的单个码元,数值等价于对应的码位. BMP中的这些码位是仅有的可以在UCS-2中表示的码位.

2、辅助平面(Supplementary Planes)中的码位,在UTF-16中被编码为 一对 16比特长的码元(即32bit,4Bytes),称作 代理对 (surrogate pair),具体方法是:

算法可理解为:辅助平面中的码位从U+10000到U+10FFFF,共计FFFFF个,即220 =1,048,576个,需要20位来表示。如果用两个16位长的整数组成的序列来表示,第一个整数(称为前导代理)要容纳上述20位的前10位,第二个整数(称为后尾代理)容纳上述20位的后10位。还要能根据16位整数的值直接判明属于前导整数代理的值的范围(210=1024),还是后尾整数代理的值的范围(也是210 =1024)。因此,需要在基本多语言平面中保留不对应于Unicode字符的2048个码位,就足以容纳前导代理与后尾代理所需要的编码空间。这对于基本多语言平面总计65536个码位来说,仅占3.125%.

3、Unicode标准规定U+D800..U+DFFF的值不对应于任何字符.

参考资料:

https://zh.wikipedia.org/wiki/Unicode

https://zh.wikipedia.org/wiki/UTF-8

https://zh.wikipedia.org/wiki/UTF-16

unicode字符集是unicode联盟开发的一种多少位字符编码标准

ASCII: 7位字符集,包括52个大小写英语字母,10个阿拉伯数字,1个空格,32个符号。 适用于纯英文环境,兼容性最好,在其他各种字符集下都能正确识别;不适用于英语以外的环境。 Latin1(ISO-8859-1):8位字符集,向下兼容ASCII字符集,并增加了一些西欧语言中的字母和符号。 优点:适用于西欧语种,得到世界广泛的软件支持; 缺点:不能表示拉丁语系以外的语言,不兼容少量只使用7位字符集的古老程序。 GB2312:16位字符集,收录有6763个简体汉字,682个符号; 优点:适用于简体中文环境,属于中国国家标准,在大陆(和新加坡?)得到广泛支持; 缺点:不兼容繁体中文,其汉字集合过少。 big5:16位字符集,收录有13060个繁体汉字,440个符号; 优点:适用于繁体中文环境,属于台湾官方标准,为繁体Windows所使用,在台湾和香港得到广泛支持,而且,由于台湾软件业发展较早,国外软件支持big5的比支持gb2312/gbk的要多; 缺点: 不兼容简体中文环境,和gb2312之间需要转换。 GBK:16位字符集,收录有21003个汉字,883个符号; 优点:适用于简繁中文共存的环境,为简体Windows所使用(代码页cp936),向下完全兼容gb2312; 缺点:不属于官方标准,和big5之间需要转换。

a在unicode中的位置

a在unicode中的位置:2个,Unicode编码里面所有字符都占两字节。

System.out.println("字母"+c+"在unicode表中的顺序位置:"(int)c);改为:System.out.println("字母"+c+"在unicode表中的顺序位置:"+(int)c);//少个+号。

for(int i=(int)c;《c+25;i++);{改为:for(int i=(int)c;i《c+25;i++){//少个i,多个;号for(int i(int)c;i《c+25;i++){ //i等于字符c的整数形式,循环25次。

编码方式:

Unicode字符集可以简写为UCS(Unicode Character Set)。早期的Unicode标准有UCS-2、UCS-4的说法。UCS-2用两个字节编码,UCS-4用4个字节编码。UCS-4根据最高位为0的最高字节分成2^7=128个group。

每个group再根据次高字节分为256个平面(plane)。每个平面根据第3个字节分为256行(row),每行有256个码位(cell)。group 0的平面0被称作BMP(Basic Multilingual Plane)。将UCS-4的BMP去掉前面的两个零字节就得到了UCS-2。

Unicode字符集

我们一般通常使用的字符集有:ASCII ISO-8859-1 GB2312 big5 GBK Unicode2.0,另外还有一种基于32位的GB18030字符集是国家新出来的一种字符集,其为一个汉字设计了4个字节,因此可以说是目前为止,对汉字支持无论是简体还是繁体都是支持比较好的一种,当然主要的缺点就是太占空间,不利于在网路上传输。 如果不考虑GB18030字符集的话,最详尽的字符集应该是Unicode了,差不多支持了GBK所支持的所有汉字不敢过总量上还是稍微差一点。GBK尽管不是国家标准,但是已经成为事实上的一个行业标准,同时支持汉字的简体和繁体两种字体。比Gig5和GB2312强大些,为了更加明确的说明各个字符间的差异,先详细说明如下: ASCII: 7位字符集,包括52个大小写英语字母,10个阿拉伯数字,1个空格,32个符号。 适用于纯英文环境,兼容性最好,在其他各种字符集下都能正确识别;不适用于英语以外的环境。 Latin1(ISO-8859-1):8位字符集,向下兼容ASCII字符集,并增加了一些西欧语言中的字母和符号。 优点:适用于西欧语种,得到世界广泛的软件支持; 缺点:不能表示拉丁语系以外的语言,不兼容少量只使用7位字符集的古老程序。 GB2312:16位字符集,收录有6763个简体汉字,682个符号; 优点:适用于简体中文环境,属于中国国家标准,在大陆(和新加坡?)得到广泛支持; 缺点:不兼容繁体中文,其汉字集合过少。 big5:16位字符集,收录有13060个繁体汉字,440个符号; 优点:适用于繁体中文环境,属于台湾官方标准,为繁体Windows所使用,在台湾和香港得到广泛支持,而且,由于台湾软件业发展较早,国外软件支持big5的比支持gb2312/gbk的要多; 缺点: 不兼容简体中文环境,和gb2312之间需要转换。 GBK:16位字符集,收录有21003个汉字,883个符号; 优点:适用于简繁中文共存的环境,为简体Windows所使用(代码页cp936),向下完全兼容gb2312; 缺点:不属于官方标准,和big5之间需要转换。 GB18030:32位字符集;收录汉字数不详,应该相当详尽。 优点:可以收录所有你能想到的文字和符号,属于中国最新的国家标准; 缺点:由于空间使用效率低(一个汉字占四个字节),运行速度慢, 目前支持它的软件较少。 Unicode2.0: 16位字符集(ucs2),收录有汉字20902个,符号6811个; 优点:适用于国际化环境,可以做为字符的内部表示和存储形式,来实现软件的国际化、本地化; 缺点:目前支持较少,与其他中文字符集不兼容。 使用哪一种字符集,需要根据使用环境而定。不要盲目的使用最大最全的字符集,这样不仅运行效率差,占用多余空间,而且会降低软件的兼容性,因为不是所有运行环境都安装有所有字符集。 如果只处理英文,则可以使用Latin1字符集,目前绝大多数机子上都可以支持。如果只处理简体中文,使用GB2312,如果同时需要支持简繁体中文,使用 GBK;如果确实需要使用偏僻字,再使用GB18030;GB2312/BIG5/GBK/GB18030都只适用于中文环境,如果需要国际化,当然要使用unicode。 有人说,同时存在和使用这么多字符集,会人为的增加软件的开发难度和不兼容性。我也认同这一点,但是,目前多种字符集的存在,尤其是多种中文字符集并存,有其现实的背景和应用,不能简单的要求使用某一个字符集就完事,否则只是不切实际的空想。GBK的编码位利用率高,汉字覆盖面广,支持简繁体同时显示,并且广泛应用于简体中文Windows环境中,已近乎成为事实上的标准,得到了越来越广泛的国际支持,但它不是国家标准。最新的GB18030是典型的学院派标准,要用一个大而全的字符集来替代现有的GB2312、GBK等,却没有考虑到实际应用的可能性。且不说其在一般应用中造成的双倍的存储空间浪费和传输带宽浪费(虽然目前单位存储价格急遽下降,不需要在象过去那样计较,但也不表示我们可以任意挥霍),更重要的是其实现的高度复杂性和编码查找及转换时的低效率,这在系统软件当中是不可容忍的。 其实,任何一种字符集都不可能适用于所有环境,字符集的设计应该根据不同的需要来分别设计,在尽量避免重复功能的字符集的同时,保持字符集之间尽可能的兼容性。更好的中文字符集的实现应该是实现两种国家标准,一种16位字符集,一种32位字符集。16位字符集用于一般性应用,类似于目前的GBK(或者直接把GBK做为标准)。32位字符集向下兼容16位字符集(或直接采用Unicode 3.0),用于文字处理等场合。操作系统和数据库管理系统等系统性软件需要同时支持这两种字符集,而一般的应用软件只需要选择一种适合自己的就行了。

unicode字符有哪些

常用的unicode字符编码范围0000到FFFF. 常用的unicode字符与ASCII类似,就是键盘上看到的英文字母,数字和标点符号,与ASCII不同在于代码的数值。-----------------------Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式公布。随着计算机工作能力的增强,Unicode也在面世以来的十多年里得到普及。最新版本的 Unicode 是 2006年7月14日推出的Unicode 5.0.0。Unicode 的编码方式与 ISO 10646 的通用字符集(Universal Character Set,UCS)概念相对应,目前实际应用的 Unicode 版本对应于 UCS-2,使用16位的编码空间。也就是每个字符占用2个字节。这样理论上一共最多可以表示 216 即 65536 个字符。基本满足各种语言的使用。实际上目前版本的 Unicode 尚未填充满这16位编码,保留了大量空间作为特殊使用或将来扩展。

Unicode与编码方式

Unicode可以表示世界上的每一个字符,每一个字符都有相应并且 唯一 的二进制编码。Unicode是一种字符集,让几乎所有语言中的每个字符都和一个 唯一数字 对应起来。

再比如:

当然mata也可能会失效,如图

参考 Unicode中UTF-8与UTF-16编码详解 UTF-8与Unicode的区别 GB2312编码表 gb2312中的英文字母占几个字节? 漫画:什么是字符集和编码?ASCII、UTF-8、UTF-16、UTF-32 又是什么? 解决GB2312、GBK、UTF-8转换问题 Unicode和UTF编码转换

字符编码简述

众所周知,java中如果要计算一个字符串的长度,可以直接利用String的length方法。如下:

显然,这里的length方法计算的字符数,一个英文字母按一个字符计算,一个中文汉字也是按照一个字符进行计算的。 不过,如果想要获取字符串的字节数呢?String依然提供了现成的方法供我们使用,如下所示:

这里,可以看到几个注意点:

先来看第一点,也是本文主要想讨论的问题:UTF-8、GBK的区别是什么,为什么会导致最终获取的字节数不一样?

要解答上面的问题,需要先知道GBK和UTF-8分别是什么。 简单的说,GBK和UTF-8是两种字符的编码方式。那么,问题又来了,什么是字符的编码方式呢?除了GBK和UTF-8,有没有其他的编码方式呢?其中的区别又在哪里?

关于字符的编码方式,姑且可以简单的理解为,将一个字符表示成一串bit流的规则(这个说法是不太准确的,下文会有详细解释)。比如说,UTF-8就是一种非常常用的字符编码方式,“汉”字以UTF-8的规则计算后表示出来的bit流就是“11100110 10110001 10001001”。 有些时候,编码方式,还会被称为编码规则、编码方案。

实际上,从计算机不再单纯地拿来进行数字计算开始,字符的编码方式就一直在不断的演进,现在就借着这一段历史,来对包括GBK、UTF-8在内的几种常见字符编码方式进行下介绍。

计算机刚出世的时候,美国人为了交流通信方便,约定了一套字符编码方式,就是ASCII码。 ASCII全称为American Standard Code for Information Interchange,即美国信息互换标准码。

ASCII码的字符集中包含了26个英文字母、10个数字(0-9)、一些常见的符号(@、#、!),基本能够满足在英语环境下的需求。ASCII字符集里面只有128个字符,每个字符都有一个编号,也就是0-127。而当时大家已经习惯于用8个bit来表示一个字节,所以干脆取一个字节来表示一个字符。其中,最高位置为0,其他位全部用上,总共128个位置,刚好能够与ASCII字符集一一对应。 举个例子,在ASCII码中,‘A’对应的编号是65,用一个字节表示就是“01000001”。

这里对引入的两个新概念做下解释: 字符集 :字面上理解就是字符的集合。 编号字符集 :指带有数字编号的字符集合,有时候也简称为字符集。例如:,在此字符集中,包含三个字符:a、b、c,并且其编号分别为1,2,3。

不过,后来计算机传到了欧洲,不少欧洲国家的语言使用ASCII码无法完整地进行表示,比如德语、法语。上文可以看到,在ASCII编码中,一个ASCII字符,是用一个字节来表示的。一个字节实际上能够表示256个数字,也就至少能够表示256个字符,而ASCII字符集只有128个字符。所以这时候出现了多种基于ASCII的编码方式。大家的基本思路都是一样的:还是使用一个字节表示一个字符,0-127依然用来表示ASCII字符集(字符编号与ASCII码保持一致),128-255拿来表示自己语言中的特殊字符。

显然,这么搞出来的多个编码方式互不兼容,大家会很痛苦。所以最后出现了两套统一的编码方案,能够对欧洲各国的字符都进行支持。这两套编码方案分别是:EASCII(Extended ASCII)字符编码方案,ISO/IEC 8859字符编码方案。

这两套方案也是沿用上面的思路:0-127依然用来表示ASCII字符集(字符编号与ASCII码保持一致),128-255用来表示欧洲各国的特殊字符(这部分字符集又被称为扩展字符集)。

由于在这两种编码方案中,ASCII字符集中的字符,保留了与ASCII码相同的字符编号,所以 这两种编码方案都是对ASCII编码完美兼容的

不过,与ASCII、EASCII属于单个独立字符集不同,ISO/IEC 8859是一组字符集的统称。其下共有15个字符集,即ISO/IEC 8859-n,n=1,2,3 …… 15,16(其中12未定义,所以共15个)。

到现在为止,EASCII已经很少有人用了,ISO/IEC 8859却是被广泛使用,其中ISO/IEC 8859-1被使用的最为普遍。而ISO/IEC 8859-1又被简称为ISO 8859-1,而且它还有一个Latin-1(也写作Latin1)的简称。

终于,计算机来到了中国。如上文所述,仿照ASCII码的规则,1个字节最多也就只能表示256个字符。但是,中国汉字有几万个,常用字就有几千个,这样的话,1个字节是完全不够用的。所以,当时的全国信息技术标准化技术委员会搞了一套自己的编码方案:用两个字节表示一个字符。这就是GB系列编码。“GB”是“国标”的拼音首字母缩写,意为“国家标准”。

最早的GB编码就是GB2312,收录了6763个汉字和682个符号,基本能够满足日常需求。 GB2312规定,一个汉字的编号必须大于127,并且编号大于127的字符必须用两个字节来表示。而0-127,仍然用来表示之前的ASCII字符集,这部分字符的编号依旧与ASCII码保持一致,并且只有一个字节来表示。

所以,GB2312对ASCII码是完全兼容的。不过GB2312对ISO是不兼容的,因为它舍弃了ISO中128-255之间的字符映射。 同时,也可以认为,在GB2312中,英文字符只占一个字节,而中文字符会占两个字节。

而计算机在依照GB2312编码进行字符识别时,会先判断第一个字节的第一个bit位是否为0,如果是,则读取1个字节,进行编码解析;如果不是,则读取两个字节,进行编码解析。

此外,当时出于种种原因考虑,GB2312对ASCII码中的西文字母、数字、标点等特殊符号进行了重新编码,用两个字节来进行表示。所以,这类字符在GB2312中就有了两种编码表示,其中小于128的编码(用1个字节表示),就被称为半角字符,大于128的编码(用2个字节表示),就被称为全角字符。

到目前为止,由于当时导致全角字符出现的历史原因已经不再存在,所以只有很少的一些全角字符还在使用(比如中文的逗号,问号,感叹号,空格等),其他的许多全角字符已经很少用了。

虽然GB2312能够满足基本的日常需求,但是毕竟收录的汉字还是太少,繁体字、生僻字是不包含在GB2312字符集中的。由此,有关部门对GB2312进行了扩展,推出了GBK编码。

GBK与GB2312基本一致,都是使用两个字节来表示汉字。不过有一点不一样:在GB2312中,表示汉字的两个字节中,其首位必须都是1;而在GBK中,只要求第一个字节(高字节)的首位为1,对于第二个字节(低字节),没做要求。当然,如果首位为0,都是用来表示ASCII字符集里的内容。

GBK可以认为是对GB2312的扩展,其对GB2312是完美兼容的。所以,GBK对ASCII码也是完美兼容的。

GB18030是对GBK的进一步扩展,在扩展现有汉字的基础上,收录了数千个少数民族的字符。其由中国国家质量技术监督局于2000年3月17日推出,用以取代GBK。

GB18030同样保持向下兼容,其对GBK、GB2312、ASCII编码完美兼容。

诸如GB2312、GBK、GB18030之类的编码格式,被程序员们称为DBCS(Double Byte Charecter Set:双字节字符集)。在DBCS的标准里,英文字符用一个字节表示,并且这个字节的第一位必然为0(英文字符对应的字号小于128);中文字符用两个字节表示,第一个字节的第一位必然为1。

如上文所述,在计算机的传播途中,为了兼容各地的语言,出现了许许多多的编码方案。但是遗憾的是,这些编码方案互不兼容,直接影响到了信息的传播,这也催生了能够兼容全球各种字符的统一编码方案的出现。

历史上存在两个独立的尝试创立单一字符集的组织:

不过在1991年前后,两个项目组发现没必要存在两个不兼容的字符集,所以它们开始合并双方成果,约定使用统一的编码表。从Unicode 2.0开始,Unicode项目采用了与ISO 10646-1相同的字库与字码,ISO也承诺,ISO将不会替超出U+10FFFF的UCS-4编码赋值,以使得两者保持一致(UCS的概念下文会有详述,此处不必过于关注)。

目前,这两个项目组仍独立存在,并独立地发布各自的标准,不过二者约定保持双方的标准码表兼容,并共同调整任何未来的扩展。

ISO 10646标准,只是一个简单的字符集表。它定义了一些编码的别名,指定了一些与标准有关的术语,并包括了规范说明,指定了怎样使用UCS链接其他ISO标准的实现,比如ISO/IEC 6429和ISO/IEC 2022。还有一些与ISO紧密相关的,比如ISO/IEC 14651是关于UCS字符串排序的。

Unicode标准,额外定义了许多与字符有关的语义符号学内容,并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法、处理双向文字(比如拉丁文和希伯来文的混合文字)的算法、排序与字符串比较所需的算法等。

在书写Unicode编码时,规定以十六进制数来进行表示,并需要加上“U+”前缀。比如“汉”字的Unicode编码为“U+6C49”。

为了能够更方便地介绍后续的内容,这里需要先解释清楚几个名词(个人认为这几个概念有助于理解后续的内容,如果不想看,可以直接跳过此节)。 编号字符集(CCS:Coded Character Set) :指带有数字编号的字符集合。上文已经介绍过了。 字符编码方式(CEF:Character Encoding Form) :将字符集的数字编号转换为字节流的规则。

还是上文中的例子,Unicode字符集中的“汉”字,在Unicode字符集中的编号是0x6C49,在UTF-8编码中,需要使用3个字节来表示,表示成二进制则是“11100110 10110001 10001001”(UTF-8的具体编码规则,下文会有详述)。 在这个例子中,Unicode就是所谓的编号字符集(CCS),UTF-8编码便是字符编码方式(CEF)。

实际上,在unicode字符集出世之前,字符集与编码方式往往是耦合在一起的,一套字符集往往也只有一套编码规则,这两个概念也没必要严格区分,人们也经常进行混用。比如ASCII码既可以认为是一套字符集,也可以认为是一种字符编码方式。

但是,Unicode字符集出现之后,字符集和编码方式被分离解耦了。此时,一套字符集可能有多套的编码规则,我们所熟知的UTF-8、UTF-16就是建立在Unicode字符集上的字符编码方式。

编码规则大致上可以分为两类:直接映射与间接映射。 直接映射 ,是指字符在字符集中的数字编号与编码后的编码串是一样的。比如ASCII字符集中,‘A’对应的字符编号是65,换算成二进制为“1000001”,按照ASCII码编码后,用一个字节来表示,就是“01000001”,也就是十进制中的65。编码前后,其实可以视为是一样的。 间接映射 ,就是字符在字符集中的数字编号与编码后的编码串不一定一样。还是上面的例子,unicode字符集中“汉”字的字符编号为0x6C49,如果换算成二进制就是“01101100 01001001”,但是UTF-8编码后要用三个字节来表示,表示成二进制就是“11100110 10110001 10001001”。编码前后,数值不一样。

其实,Unicode出现之前,大家一直用的都是直接映射,编码前后数值是一样的,这也是一直没有明确区分字符集和编码方式这两个概念的一个原因。

解释清楚了这几个概念,下面我们继续:

UCS全称为“Unicode Character Set”,是由ISO制定的ISO 10646标准所定义的标准字符集。 UCS又称“Universal Multiple-Octet Coded Character Set”,译为通用多八位编码字符集。 相对应的,Unicode项目所使用的标准字符集通常被称为Unicode字符集。

如上文所述,Unicode 2.0发布时,Unicode字符集与UCS字符集基本保持了一致,之后虽然二者独立存在,但是一直在保持互相的兼容。

在ISO与unicode合并之前,ISO就有一套字符编码模式,也就是UCS-2。 UCS-2的规则就是用两个字节来表示字符集中的字符,并且它使用的是直接映射的方式。所以可以简单理解为,UCS-2就是将字符的数字编号直接转化为二进制,然后用两个字节来进行存储。 与ASCII类似,此时的UCS-2其实可以视为一套字符集,也可以视为一套编码规则。

UCS-2用两个字节来表示一个字符,所能容纳的字符数量为2^16 = 65536个。 在ISO与Unicode合并字符集之后,双方约定字符集需要容纳的字符数量远远超过65535个(到目前为止,Unicode字符集可容纳的字符量为2^16 * 17 = 1114112个),此时UCS-2显然不够用了,所以ISO推出了新的规则,就是UCS-4.

UCS-4与UCS-2基本一样,唯一的不同点是,UCS-4使用4个字节来表示一个字符。 同样,UCS-4可以认为是一套字符集,也可以认为是一套编码规则。

在有些文章里,UCS-4有广义和狭义两种含义,广义上UCS-4包含UCS-2,狭义上不包含。个人理解,在指代字符集的时候,UCS-4包含UCS-2,但是在指代编码规则时,UCS-4不包含UCS-2。

UCS-2全称2-byte Universal Character Set,直译为2字节通用字符集。 UCS-4全称4-byte Universal Character Set,直译为4字节通用字符集。

注意:UCS-2和UCS-4组成的UCS字符集,都可以采用UTF-8、UTF-16、UTF-32进行编码。所以UCS-2与UTF-16并不等同,UCS-4与UTF-32也不等同。

如上文所述,ISO与Unicode合并之后,ISO推出了UCS-4。但是Unicode推出的却是另外一套编码规则:UTF-16.

UTF-16源于UCS-2,但是与UCS-2不太一样。UCS-2属于定长编码方式,永远使用两个字节来表示一个字符。而UTF-16属于变长编码方式,对于UCS-2字符集中的字符(0x0000~0xFFFF)使用2个字节来表示,对于UCS-4字符集中除开UCS-2里的字符(0x10000~0x10FFFFF),使用4个字节来表示。

UTF-16的编码规则属于间接映射。对于UCS-2字符集里面的内容,保持字符编号与生成的编码串相同,但是对于UCS-4中的其他字符(指除开UCS-2中的字符),字符编号与最终的编码串并不相同。这里采取了一套计算算法:代理机制。不过本文对此不做深究。

虽然UTF-16能够满足需求,但是一来对于ASCII字符集中的字符,UTF-16仍然需要使用两个字节来存储(这样会有一个字节的空间被浪费),并且ASCII中的字符,其UTF-16编码的第一个字节将永远是0x00,而C语言中又因为会将此字节视为字符串末尾导致字符串无法正常解析。所以UTF-16刚推出的时候,就受到了很多的抵制。

由此,UTF-8出现了。

UTF-8也是一种变长编码方式,它使用1到4个字节来表示一个字符。 字符编号为0~127(十进制)的字符,使用一个字节进行表示。 字符编号为128~2047(十进制)的字符,使用两个字节进行表示。 字符编号为2048~65535(十进制)的字符,使用三个字节进行表示。 字符编号为65536~2097151(十进制)的字符,使用四个字节进行表示。

UTF-8和UTF-16,都属于间接映射。也就是说,字符编号与最终的编码并不完全是一样的。 实际上,UTF-8的编码规则如下:

还是上文中的例子,Unicode字符集中的“汉”字,字符编号以16进制表示为“0x6C49”,换算成十进制就是27721,所以需要使用三个字节进行表示。而“0x6C49”换算成二进制就是“110110001001001”,代入上图中三字节的编码规则(“1110xxx 10xxxxxx 10xxxxxx”),最终得到的就是"1110110 10110001 10001001"。

当然,对于ASCII字符集里面的字符(字符编号小于128),UTF-8只需要一个字节即可表示。与UTF-16的两个字节相比,空间利用率更高(同样,在进行数据传输时,效率也更高)。 也因此,UTF-8对于ASCII码属于完美兼容,而UTF-16只能算是间接兼容(毕竟多了一个字节,解析的时候还需要进行转化)。考虑到计算机世界里ASCII字符的广泛性,这一点意义重大。 顺便说一句,虽然上面并没有介绍UTF-16的代理机制,但是可以说明的是,这个代理机制的算法要比UTF-8的算法更加复杂,一定程度上也导致了UTF-16进行编码和解码需要耗费更多的资源。

此外,可以看到,UTF-8编码产出的字节,都带有固定的前缀。这样做有几个好处: 第一,字符使用UTF-8编码之后,第一个字节的前面的几位,可以明确标识出来,此字符需要几个字节才能表示出来。这样的话,解码程序在读入每一个字节的时候,就能够知道当前字节是否为一个字符的首字节;如果是首字节的话,立刻就能知道还需要读入几个字节才能解析出来这个字符。 第二,字符经UTF-8编码之后,生成做到多个字节中,第一个字节的固定前缀与后续字节的固定前缀都不一样。这样就保证,在传输过程中,如果出现了局部的字节错误,比如增加、丢失、修改了某些字节。将只会影响到有限个字符,并不会导致后续的所有的字符都解析错误。这一点是UTF-16、UTF-32、GB系列都做不到的事情。 第三,同样因为编码后,首字节的前缀与后续字节的前缀都不同,所以从UTF-8字节流中的任一字节开始,往后或者往前都可以很轻易的找到当前字符或者临近字符的起始位置。 第四,依照目前的规则(检查首字节,在第一个0出现之前,有几个1,就代表当前字符需要用多少个字节进行表示),UTF-8可以很轻易地扩展到5个字节、6个字节,甚至是7个字节和8个字节。这就保证了UTF-8可以很轻易地支持Unicode字符集的不断扩充。

与UTF-8和UTF-16相比,UTF-32就比较简单了。

UTF-32的编码规则属于直接映射,并且每个字符都使用四个字节来表示。 因此,UTF-32比UTF-16更浪费空间。但是因为使用的是定长编码(每个字符都是四个字节),所以文本处理速度上要比UTF-8和UTF-16快一些。

在三大UTF编码中,UTF-32既不是最早出现的(UTF-16),也不是最优设计(目前公认UTF-8为最优设计),所以目前已经很少有地方在用了。

上文聊到一个内容,UTF-16编码,有可能使用两个或者四个字节来表示一个字符。那么问题来了,假设存在一个字符,其用UTF-16编码之后,对应的字节流,用16进制表示为0xFA 0xFB。这时候,在计算机存储与传输中,到底应该是0xFA放前面呢,还是应该0xFB放前面呢?

比较遗憾的是,在计算机发展历程中,出于各种各样的原因,大家并没有形成统一,而是出现了多种方案,比较常见的是如下两种: 一、大端序(Big-Endian):又称高尾端序,即数据的尾端存储在内存的高地址;数据的头端存储在内存的低地址。 二、小端序(Little-Endian):又称低尾端序,即数据的尾端存储在内存的低地址;数据的头端存储在内存的高地址。

为了方便理解记忆,这里用几个例子来对大端序和小端序进行下简单的说明。 首先,我们在阅读和书写二进制串时,总是高位在前,低位在后。比如,拿“汉字”为例,其中“汉”对应的unicode编码为“U+6C49”,“字”对应的unicode编码为“U+5B57”,如下所示:

而计算机内存的地址增长,我们设定为从左到右,如下图所示:

那么这种情况下,大端序,就是将写入内存时,字节顺序不变。如下所示:

而小端序,就需要将字节串前后颠倒一下顺序,再写入内存,如下所示:

注意:

不过,问题来了,上面举的例子中,“汉”和“字”在UTF-16编码下,都只需要两个字节就能表示。那对于需要四个字节才能表示的字符呢?这里选取两个字符,对应的unicode编码分别为"U+129024"(

unicode字符集(unicode字符集是几个字节表示一个字符为什么需要utf-8)

本文编辑:admin
unicode字符集 ,c ,icod

更多文章:


showmodal(delphi中show和showmodal的区别)

showmodal(delphi中show和showmodal的区别)

本文目录delphi中show和showmodal的区别Delphi中使用Bpl时Show出来的窗口关闭时如何自动释放包(ShowModal出来的紧跟UnLoadPackage好说)delphi调用窗口showmodle问题c++build

2024年7月3日 09:31

源码战争攻略(战争雷霆c系攻略)

源码战争攻略(战争雷霆c系攻略)

本文目录战争雷霆c系攻略僵尸战争好玩吗战争雷霆c系攻略感谢您的邀请。鄙人将浅谈C系科技树的特点,以及个人的心得和部分建议。鄙人文笔很差,并且可能对科技树某些方面认识不全面,希望大佬指正,谢谢。首先,C系科技树作为战争雷霆国服特有的一个系列,

2024年7月7日 18:54

camunda工作流实战(nike喷泡实战怎么样)

camunda工作流实战(nike喷泡实战怎么样)

本文目录nike喷泡实战怎么样工作中如何快速掌握工作经验实战电工有工作经验,会画图配线怎样快速学会编程鲁格手枪的实战效果如何nike喷泡实战怎么样Nike的“喷”(Air Foamposite one)和“泡”(Air Foamposite

2024年7月17日 02:27

如何写个人职业生涯主题内容?关于勇敢主题个人励志演讲稿优秀范文三篇

如何写个人职业生涯主题内容?关于勇敢主题个人励志演讲稿优秀范文三篇

本文目录如何写个人职业生涯主题内容关于勇敢主题个人励志演讲稿优秀范文三篇个人分享什么主题比较好安全重视主题个人发言稿四篇小学生个人网站主题可以有哪些qq里面怎么设置个人主题团结主题个人演讲稿范文五篇写作文不知道如何写选择个人主题比较困难、纠

2024年7月3日 01:58

数据挖掘原理与算法(数据挖掘中的经典算法)

数据挖掘原理与算法(数据挖掘中的经典算法)

本文目录数据挖掘中的经典算法大数据挖掘的算法有哪些数据仓库与数据挖掘的原理是什么数据挖掘的经典算法有哪些数据挖掘与算法是什么关系数据挖掘的概念和原理是什么数据挖掘的经典算法数据挖掘原理与实践 pdf急数据挖掘中的经典算法大家都知道,数据挖掘

2023年9月26日 05:00

XDATA寻址空间为多少字节?51单片机定义一个大数组存在idata与xdata中有什么区别

XDATA寻址空间为多少字节?51单片机定义一个大数组存在idata与xdata中有什么区别

本文目录XDATA寻址空间为多少字节51单片机定义一个大数组存在idata与xdata中有什么区别在C语言中xdata是什么意思xdata 是什么p89c51rd2无法使用xdata单片机里xbyte和xdata到底什么关系啊关于定义xda

2024年5月19日 03:14

tenacity(tenacity 有形容词么)

tenacity(tenacity 有形容词么)

大家好,tenacity相信很多的网友都不是很明白,包括tenacity 有形容词么也是一样,不过没有关系,接下来就来为大家分享关于tenacity和tenacity 有形容词么的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开

2024年8月12日 03:15

signature什么意思(Signature是什么意思)

signature什么意思(Signature是什么意思)

本文目录Signature是什么意思signature什么意思signature是什么意思“signature”的意思是什么print name 和 signature是什么意思signature是签名那么name of signatory

2023年7月25日 04:40

广西网站建设(广西最厉害的网络公司,南宁最厉害的网站建设公司)

广西网站建设(广西最厉害的网络公司,南宁最厉害的网站建设公司)

本文目录广西最厉害的网络公司,南宁最厉害的网站建设公司我想做网站,在广西网站建设里大概要多少钱想问一下角点科技,在广西怎么选择网站建设公司如果我想建设一个网购商城,我应该怎么做,我想找南宁本地的广西网站建设做一个网站需要什么,网站建设基本步

2024年7月24日 03:43

嵌入式linux系统中进行开发(linux嵌入式开发是不是必须用linux才能开发_linux嵌入式开发是什么)

嵌入式linux系统中进行开发(linux嵌入式开发是不是必须用linux才能开发_linux嵌入式开发是什么)

本文目录linux嵌入式开发是不是必须用linux才能开发_linux嵌入式开发是什么嵌入式linux开发用什么linux系统嵌入式开发为什么大多数都是在Linux系统下开发linux嵌入式开发是不是必须用linux才能开发_linux嵌入

2024年7月24日 14:47

headfirst设计模式中文版(有谁知道 Head First Design Patterns(深入浅出设计模式) 中文版的电子书下载地址 阿)

headfirst设计模式中文版(有谁知道 Head First Design Patterns(深入浅出设计模式) 中文版的电子书下载地址 阿)

大家好,今天小编来为大家解答以下的问题,关于headfirst设计模式中文版,有谁知道 Head First Design Patterns(深入浅出设计模式) 中文版的电子书下载地址 阿这个很多人还不知道,现在让我们一起来看看吧!本文目录

2024年8月1日 11:10

matlab傅里叶变换的幅度谱和相位谱(在 MATLAB 下如何实现对一组数据振幅谱和相位谱)

matlab傅里叶变换的幅度谱和相位谱(在 MATLAB 下如何实现对一组数据振幅谱和相位谱)

本文目录在 MATLAB 下如何实现对一组数据振幅谱和相位谱傅里叶级数中的幅度谱和相位谱是怎么画出来的对保存的Excel数据,如何使用MATLAB做他的傅里叶振幅谱和相位谱求解大神谁能把求这个函数的用傅里叶变换幅度谱和相位谱然后做线形图的m

2024年4月22日 06:50

粤绣为什么能成为中国四大名绣之一粤绣有什么特点?粤绣与其他绣有什么不同之处

粤绣为什么能成为中国四大名绣之一粤绣有什么特点?粤绣与其他绣有什么不同之处

本文目录粤绣为什么能成为中国四大名绣之一粤绣有什么特点粤绣与其他绣有什么不同之处粤语拼音怎么写结粒绣教程平安醒狮兔刺绣教程有哪些与粤绣有关的古诗词粤绣有哪些特点现代的苏绣、蜀绣、湘绣、粤绣都是纯人工的吗粤绣针法教程在哪里可以找到刺绣教程粤绣

2024年7月24日 11:13

企业标准模板(来份WORD格式GB/T1.1-2009企业标准要齐全点,谢谢了)

企业标准模板(来份WORD格式GB/T1.1-2009企业标准要齐全点,谢谢了)

本文目录来份WORD格式GB/T1.1-2009企业标准要齐全点,谢谢了企业标准要怎么写企业标准封面和正文用什么字体,几号字编写的wps怎么插入企业标准模板企业标准编制说明模板关于软件产品类的企业标准怎么写求一份软件产品的企业标准模板,谢谢

2024年7月11日 09:48

feminism(女利主义和女权主义的区别是什么)

feminism(女利主义和女权主义的区别是什么)

本文目录女利主义和女权主义的区别是什么女利主义和女权主义的区别是什么女权主义和女性主义,是feminism一词在国内的两种译法,实际上更准确的翻译当然是女性主义,feminine(女性气质的;阴性的;阴柔的),female(女性的;雌性的)

2023年6月17日 04:20

queue full什么意思(循环队列中rear、front 初始值是什么)

queue full什么意思(循环队列中rear、front 初始值是什么)

大家好,今天小编来为大家解答以下的问题,关于queue full什么意思,循环队列中rear、front 初始值是什么这个很多人还不知道,现在让我们一起来看看吧!本文目录循环队列中rear、front 初始值是什么队列是什么意思synchr

2024年7月24日 08:05

html是什么的描述语言(HTML是一个什么语言)

html是什么的描述语言(HTML是一个什么语言)

本文目录HTML是一个什么语言HTML是一种什么语言HTML是一种什么语言它用来描述html是一种描述什么的语言HTML是一个什么语言HTML是超文本标记语言(Hyper Text Markup Language),标准通用标记语言下的一个

2024年7月15日 07:58

缓冲区溢出攻击(缓冲区溢出攻击的基本原理是什么)

缓冲区溢出攻击(缓冲区溢出攻击的基本原理是什么)

本篇文章给大家谈谈缓冲区溢出攻击,以及缓冲区溢出攻击的基本原理是什么对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录缓冲区溢出攻击的基本原理

2024年7月15日 17:31

快速开发框架(jeeplus快速开发框架怎么样)

快速开发框架(jeeplus快速开发框架怎么样)

本文目录jeeplus快速开发框架怎么样如何使用ZBLibrary-Android快速开发框架微信开发用什么程序/框架/架构9个顶级的JavaScript移动应用开发框架android五大应用开发框架是什么_安卓框架是什么android 五

2024年6月30日 01:40

对话框生成器(photoshop 生成器什么用)

对话框生成器(photoshop 生成器什么用)

本文目录photoshop 生成器什么用catia齿轮生成器在哪个位置数据库属性表的选择生成器在哪微信对话生成器怎么使用在vfp编程中另存为对话框的程序如何写PS 软件总是提示生成器出现问题要重新启动ps或者删除插件,导出图片是总是弹出这个

2024年7月15日 04:53

近期文章

本站热文

iphone vpn设置(ios设置vpn快捷开关)
2024-07-22 15:01:12 浏览:2334
windows12正式版下载(操作系统Windows Server 2012 R2,在哪能下载到,公司用的)
2024-07-20 17:26:53 浏览:1731
java安装教程(win10如何安装JAVA)
2024-07-19 19:55:49 浏览:1156
client mfc application未响应(每次进cf就提示client MFC Application未响应该怎么办啊!急急急)
2024-07-20 11:15:58 浏览:1152
标签列表

热门搜索