当前位置: 首页 > news >正文

台州工程建设信息网站北京装修公司口碑最好的是哪家

台州工程建设信息网站,北京装修公司口碑最好的是哪家,拖拽式网站建设哪家专业,傲鸿网站建设1.基础知识   我们在计算机屏幕上看到的是实体化的字符#xff0c;而计算机存储介质中存放的实际上是二进制的比特流。这两者之间有一个转换规则#xff0c;类比密码学中的加密解密#xff0c;从“字符”到“比特流”称之为“编码”#xff0c;从“比特流”到“字符”则称…1.基础知识   我们在计算机屏幕上看到的是实体化的字符而计算机存储介质中存放的实际上是二进制的比特流。这两者之间有一个转换规则类比密码学中的加密解密从“字符”到“比特流”称之为“编码”从“比特流”到“字符”则称之为“解码”。这也引出了下面我们要讲的几个概念。 1.1.字符集   字符Character是各种文字和符号的总称包括各国家文字、标点符号、图形符号、数字等。 字符集Character set是多个字符的集合字符集种类较多每个字符集包含的字符个数不同常见字符集有ASCII字符集、GB2312字符集、BIG5字符集、 GB18030字符集、Unicode字符集等。那么为什么会有那么多字符集标准呢这是因为很多规范和标准在最初制定时并没有意识到这将会是以后全球普适的准则或者出于组织本身利益考虑想从本质上区别于现有标准。于是就产生了那么多具有相同效果但又互不兼容的标准。 1.2.字符编码   字符编码Character encoding是把字符集中的字符编码为指定集合中某一对象例如比特模式、自然数序列、8位组或者电脉冲以便文本在计算机中存储和通过通信网络的传递。一般而言会直接将字符在字符集中的位置或者说是码点code point作为编码后的值。故而“字符集”和“字符编码”二者是紧密耦合的也有例外后面我们会讲到。因此某种字符集也可以说成是某种字符编码方式例如当我们说到“ASCII”时既可以指代ASCII字符集也可以指代ASCII编码。 2.常用字符集字符编码 2.1.ASCII   ASCIIAmerican Standard Code for Information Interchange美国信息互换标准编码是基于基础拉丁字符的一套电脑编码系统。它主要用于显示现代英语而其扩展版本EASCIIExtended ASCII则可以勉强显示其他西欧语言。它是现今最通用的单字节编码系统并等同于国际标准ISO/IEC 646。   ASCII用7bit来编码字符共128个码位由于计算机1个字节是8bit所以最高位为0即00000000-011111110x00-0x7F。其中有95十进制32-126个可打印字符包括常用的字母、数字、标点符号等另外还有33十进制0-31及127个控制字符。ASCII字符编码对应规则如下 ASCII是美国人设计的只能支持基础拉丁字符而当计算机发展到欧洲欧洲其它不只是用基础拉丁字符的国家即用更大的派生拉丁字符集该怎么办呢最简单的办法就是将ASCII没有用到的第8位也用上这样能表达的字符个数就达到了256个相较原来增长了一倍 这就是EASCII。EASCII基本解决了整个西欧的字符编码问题。但是对于欧洲其它地方如北欧东欧地区256个字符还是不够用因此出现了ISO 8859。为解决256个字符不够用的问题ISO 8859采取的不再是单个独立的编码规则而是由一系列的字符集共15个所组成分别称为ISO 8859-n(n1,2,3…11,13…16没有12)。其每个字符集对应不同的语言如ISO 8859-1对应西欧语言ISO 8859-2对应中欧语言等。其中大家所熟悉的Latin-1就是ISO 8859-1的别名它表示整个西欧的字符集范围。需要注意的的是ISO 8859-n与ASCII是兼容的即其0000000-011111110x00-0x7f范围段与ASCII保持一致而10000000-111111110x80-0xFF范围段被扩展用到不同的字符集。EASCII字符编码对应规则如下含表格符号、计算符号、希腊字母和特殊的拉丁符号等 2.2.中文编码   为了扩充ASCII以用于显示本国的语言不同的国家和地区制定了不同的标准由此产生了GB2312简体中文BIG5繁体中文JIS日文等各自的编码标准。这一节我们将集中叙述几种常用的中文编码标准。 2.2.1.GB2312   为了满足国内在计算机中使用汉字的需要中国国家标准总局发布了一系列的汉字字符集国家标准编码统称为GB码或国标码。其中最有影响的是于1980年发布的《信息交换用汉字编码字符集·基本集》标准号为GB 2312-1980。GB2312通行于我国内地新加坡等地也采用此编码标准并且几乎所有的中文系统和国际化的软件都支持GB2312。   GB2312是一个简体中文字符集收录简化汉字及一般符号、序号、数字、拉丁字母、日文假名、希腊字母、俄文字母、汉语拼音符号、汉语注音字母共 7445 个图形字符。其中包括6763个汉字含一级汉字3755个二级汉字3008个包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的682个全角字符。GB2312对所收录字符进行了“分区”处理共94个区区从1十进制开始一直到94十进制每区含有94个位位从1十进制开始一直到94十进制共883694 * 94个码位。由此每个字符都能找到其唯一对应的区位和码位这种表示方式也称为区位码。各区具体说明如下 01-09区收录除汉字外的682个字符有164个空位9 * 94 - 682 10-15区为空白区没有使用 16-55区收录3755个一级汉字简体按拼音排序 56-87区收录3008个二级汉字简体按部首/笔画排序 88-94区为空白区没有使用 1 2 3 4 5   GB2312以区位码为基础对字符采用双字节编码其中高字节表示区码低字节表示位码。由于区码和位码的取值范围均在194之间此范围同ASCII的编码范围冲突。例如汉字‘珀’在GB2312中的区位码为7174十进制其双字节表示形式为71、74而两个ASCII字符‘GJ’的存储码也是71、74这种冲突将导致解码时的混乱。为解决这个问题GB2312将区位码均加上0xA0这样高低字节的第8位都变成了1进而同ASCII区分开来。具体操作如下图 例如‘李’字的区位码为3278表示在32区78位按照上图步骤获取其GB2312编码 将32区转化为十六进制为20 加上A0为C0 将78位转化为十六进制为4E 加上A0为EE 组合区和位为C0EE 得到李字的GB2312编码为C0EE。 1 2 3 4 5 6   所以说GB2312是兼容ASCII的一种编码方式一个小于127的字符的意义与原来相同但两个大于127的字符连在一起时就表示一个汉字前面的一个字节高字节范围从0xA1到0xF7后面一个字节低字节范围从0xA1到0xFE这样我们就可以组合出7000多个简体汉字了。在这些编码里还把数学符号、罗马希腊的 字母、日文的假名们都编进去了连在ASCII里本来就有的数字、标点、字母都统统重新编了两个字节长的编码这就是常说的”全角”字符而原来在127以下的那些就叫”半角”字符了。   有人可能曾困惑过GB2312采用双字节编码原则上来说共有65536个码位为何实际却只收录字符7445个现在我想答案应该是显而易见的出于兼容ASCII和节省存储容量的考虑GB2112的双字节编码是变长的有些字符是单字节表示如ASCII字符有些字符是双字节表示如汉字由此而来的代价就是损失一部分码位而且编码的设计也并非想象的那样所有字符从头到尾布满整个二维表其中还预留有一部分空间以作他用。   GB2312的出现基本满足了汉字的计算机处理需要它所收录的汉字已经覆盖中国大陆99.75%的使用频率。然而对于人名、古汉语等方面出现的罕用字GB2312却不能处理这就导致了后来GBK及GB18030的出现。 2.2.2.BIG5   在台湾、香港与澳门地区使用的是繁体中文字符集。而1980年发布的GB2312面向简体中文字符集并不支持繁体汉字。在这些使用繁体中文字符集的地区一度出现过很多不同厂商提出的字符集编码这些编码彼此互不兼容造成了信息交流的困难。为统一繁体字符集编码1984年台湾五大厂商宏碁、神通、佳佳、零壹以及大众一同制定了一种繁体中文编码方案即Big5又称大五码。   大五码是一种繁体中文汉字字符集其中繁体汉字13053个808个标点符号、希腊字母及特殊符号。大五码采用双字节编码第1字节范围0x810xFE避开了同ASCII码的冲突第2字节范围是0x400x7E和0xA10xFE。因为Big5的字符编码范围同GB2312存在冲突所以二者并不兼容。Big5字符编码分布表如下 编码范围十六进制    符号类别 8140A0FE    保留用作造字区 A140A3BF    标点符号、希腊字母及特殊符号 A3C0A3FE    保留未开放用于造字区 A440C67E    常用汉字先按笔划再按部首排序 C6A1C8FE    保留用作造字区 C940F9D5    非常用汉字先按笔划再按部首排序 F9D6FEFE    保留用作造字区 Big5编码推出后得到了繁体中文软件厂商的广泛支持在使用繁体汉字的地区迅速普及使用。目前Big5编码在台湾、香港、澳门及其他海外华人中普遍使用成为了繁体中文编码的事实标准。在互联网中检索繁体中文网站所打开的网页中大多都是通过Big5编码产生的文档。   不过尽管Big5码内包含一万多个字符但是没有考虑社会上流通的人名、地名用字、方言用字、化学及生物科等用字亦没有包含日文平假名及片假名字母。 2.2.3.GBK   GBK即汉字内码扩展规范K为扩展的汉语拼音中“扩”字的声母。英文全称Chinese Internal Code Specification。GBK编码标准兼容GB2312是对GB2312-80的扩展简、繁体字融于一库。GBK采用双字节表示总体编码范围为8140-FEFE首字节在81-FE 之间尾字节在40-FE 之间剔除 xx7F一条线。总计23940 个码位共收入21886个字符其中汉字包括部首和构件21003 个图形符号883 个。GBK同样兼容ASCII00–7F范围内单字节表示ASCII字符。 2.2.4.GB18030   GB18030全称GB18030-2000《信息交换用汉字编码字符集基本集的扩充》是我国政府于2000年3月17日发布的新的汉字编码国家标准2001年8月31日后在中国市场上发布的软件必须符合本标准。   GB18030字符集标准解决了汉字、日文假名、朝鲜语和中国少数民族文字组成的大字符集计算机编码问题。该标准的字符总编码空间超过150万个编码位收录了27484个汉字覆盖中文、日文、朝鲜语和中国少数民族文字。满足中国大陆、香港、台湾、日本和韩国等东亚地区信息交换多文种、大字量、多用途、统一编码格式的要求。   GB18030标准采用单字节、双字节和四字节三种方式对字符编码兼容ASCII、GB2312和GBK。 2.2.5.小结 3.Unicode 3.1.Unicode字符集   虽然通过使用不同字符集我们可以在一台机器上查阅不同语言的文档但是我们仍然无法解决一个问题在一份文档中显示世界上所有字符。为了解决这个问题我们需要一个全人类达成共识的巨大的字符集这就是Unicode字符集。   Unicode中文万国码、国际码、统一码、单一码是计算机科学领域里的一项业界标准。它对世界上大部分的文字系统进行了整理、编码使得电脑可以用更为简单的方式来呈现和处理文字。Unicode至今仍在不断增修每个新版本都加入更多新的字符。目前最新的版本为2017年6月20日公布的10.0.0已经收录超过十万个字符第十万个字符在2005年获采纳。Unicode发展由非营利机构统一码联盟The Unicode Consortium负责该机构致力于让Unicode方案取代既有的字符编码方案。因为既有的方案往往空间非常有限亦不适用于多语环境。Unicode备受认可并广泛地应用于电脑软件的国际化与本地化过程。   Unicode字符集包含了可能出现的所有字符每个字符对应一个数字这个数字即码点Code Point如字符‘H’的码点为72字符‘李’的码点为26446。Unicode包含了1114112个码点即0x000000-0x10FFFF。世界上所有字符都可以在Unicode字符集中找到对应的唯一码点点击这里查询字符对应的码点。   Unicode按照使用上的频繁度将码空间划分为17个平面00-10十六进制最高两位即从0 - 16十进制每个平面有65536个码点2^16其中最重要的是第一个Unicode平面码位0x0000-0xFFFF包含了最常用的字符该平面被称为基本多语言平面Basic Multilingual Plane缩写为BMP其他平面称为辅助平面Supplementary Planes要么是用来表示一些远古时期的文字要么是留作扩展。Unicode字符集中各个平面的基本情况如下 在表示一个Unicode字符时通常会用“U”然后紧接着一组十六进制的数字。在BMP里的所有字符要用4位十六进制数例如U4AE0共支持六万多个字符在BMP以外的字符则需要使用5位或6位十六进制数了。   事实上历史上存在两个独立的创立单一字符集的尝试除了统一码联盟的Unicode项目还有一个是国际标准化组织ISO的 ISO 10646项目该项目定义的标准字符集称作UCSUniversal Character Set通用字符集又称Universal Multiple-Octet Coded Character Set通用多八位编码字符集。后来这二者的工作成果合并了现今两个项目仍都独立存在并独立地公布各自的标准。具体细节读者可自行了解在这里我们只需要知道目前实际应用的Unicode版本对应于UCS-2最新但未实际广泛使用的Unicode版本对应于UCS-4。UCS-2只定义了BMP内的字符UCS-4定义了由0x00000000到0x7FFFFFFF的字符四字节符号位未使用且零。   Unicode只是一个字符集只规定了字符所对应的码点并没有指定字符编码方式也即从码点到用来存储的比特流之间如何映射。关于这一点我们不妨回忆一下之前曾经讲过的一般而言会直接将字符在字符集中的位置或者说是码点作为编码后的值。在这种方式下字符集和字符编码耦合紧密限制了字符集的扩展能力。鉴于此Unicode将字符集和字符编码方案分离开从字符到码点再从码点到编码值作了两次映射。这样虽然每个字符在Unicode字符集中都能找到唯一确定的码点但是最终的编码值却是由具体的编码方案决定。例如同样是对字符“A”进行编码UTF-8编码得到的值是0x41而UTF-16Big-Endian得到的却是0x0041。 3.2.编码方案   Unicode的编码方案又叫Unicode转换格式简称为UTFUnicode Transformation Format包括UTF-16、UTF-32以及UTF-8其中又属UTF-8使用最为广泛。 3.2.1.UTF-16   UTF-16对应于UCS-2采用双字节编码BMP内位于U0000至UD7FF以及UE000至UFFFF字符编码后的值等同于对应的码点由于BMP内的UD800至UDFFF码位不对应于任何字符UTF-16借助于这些码位根据一定的规则采用四字节编码辅助平面内位于U10000至U10FFFF的字符。因此UTF-16是一种变长编码方式。   UTF-16可看成是UCS-2的父集。在没有辅助平面字符前UTF-16与UCS-2所指的是同一的意思。但当引入辅助平面字符后就称为UTF-16了。现在若有软件声称自己支持UCS-2编码那其实是暗指它不能支持在UTF-16中超过2字节的字集。对于小于0x10000的UCS码UTF-16编码就等于UCS码。   UTF-16编码分大端序Big-Endian简称UTF-16 BE和小端序Little-Endian简称UTF-16 LE两种区别在于字节序的不同。例如汉字“奎”的Unicode码点是594E“乙”的Unicode码点是4E59。如果我们收到UTF-16字节流“594E”那么这是“奎”还是“乙”UTF-16采用BOMByte Order Mark字节序标记机制来解决这个问题在Unicode中有两个特殊字符一个是UFEFF表示”ZERO WIDTH NO-BREAK SPACE”另一个是UFFFE它在Unicode中是不存在的字符所以不应该出现在实际传输中。UTF-16在传输字节流前先传输一个BOM这样如果接收者收到FEFF就表明这个字节流是Big-Endian的如果收到FFFE就表明这个字节流是Little-Endian的。   以下的例子有四个字符U6731朱、U002C,、U807F聿、U2A6A5四个“龍”组成无法显示。 3.2.2.UTF-32   UTF-32对应于UCS-4采用四字节编码所有的Unicode字符。 3.2.3.UTF-8   UTF-8是一种针对Unicode的可变长度字符编码也是一种前缀码。它可以用来表示Unicode标准中的任何字符且其编码中的第一个字节仍与ASCII兼容这使得原来处理ASCII字符的软件无须或只须做少部分修改即可继续使用。因此它逐渐成为电子邮件、网页及其他存储或发送文字的应用中优先采用的编码。  UTF-8使用一至六个字节为每个字符编码尽管如此2003年11月UTF-8被RFC 3629重新规范只能使用原来Unicode定义的区域U0000到U10FFFF也就是说最多四个字节 1. 128个ASCII字符只需一个字节编码U0000至U007F。 2. 带有附加符号的拉丁文、希腊文、西里尔字母、亚美尼亚语、希伯来文、阿拉伯文、叙利亚文及它拿字母则需要两个字节编码U0080至U07FF。 3. 其他基本多文种平面BMP中的字符这包含了大部分常用字如大部分的汉字使用三个字节编码U0800至UFFFF。 4. 其他极少使用的Unicode 辅助平面的字符使用四至六字节编码U10000至U1FFFFF使用四字节U200000至U3FFFFFF使用五字节U4000000至U7FFFFFFF使用六字节。 总结一下就是1.对于单字节编码字符字节的第一位设为0后面7位为该字符的二进制Unicode码点值故而UTF-8兼容ASCII2.对于n字节编码字符n1第一个字节的前n位都设为1第n1位设为0后面字节的前两位一律设为10剩下的二进制位全部用该字符的二进制Unicode码点值替代。   来看个例子。字符“汉”表示为U6C496C49在0800-FFFF之间所以要用3字节模板1110xxxx 10xxxxxx 10xxxxxx。将6C49写成二进制是0110 110001 001001不足16位前面补0 用这个比特流依次代替模板中的x得到11100110 10110001 10001001转换为十六进制即UTF-8编码为E6 B1 89。 UTF-8编码的优点 1. ASCII是UTF-8的一个子集。因为一个纯ASCII字符串也是一个合法的UTF-8字符串所以现存的ASCII文本不需要转换。为传统的扩展ASCII字符集设计的软件通常可以不经修改或很少修改就能与UTF-8一起使用。 2. UTF-8字符串可以由一个简单的算法可靠地识别出来。就是一个字符串在任何其它编码中表现为合法的UTF-8的可能性很低并随字符串长度增长而减小。举例说字符值C0、C1、F5至FF从来没有出现。为了更好的可靠性可以使用正则表达式来统计非法过长和替代值。 UTF-8编码的缺点 1. 与其他Unicode编码相比特别是UTF-16在UTF-8中ASCII字符占用的空间只有一半可是在一些字符的UTF-8编码占用的空间就要多出1/3特别是中文、日文和韩文CJK这样的方块文字。 由于在UTF-8编码中其自身已经带了控制信息如1110xxxx 10xxxxxx 10xxxxxx 其中1110就起到了控制作用所以不需要额外的BOM机制但可以用BOM来表明编码方式。字符”ZERO WIDTH NO-BREAK SPACE”的UTF-8编码是0xEFBBBF所以如果接收者收到以0xEFBBBF开头的字节流就知道这是UTF-8编码了。但是需要注意不是所有软件或者程序都能正确处理BOM标记所以我们不推荐对UTF-8编码的文件加上BOM。 4.遗留问题 4.1.ANSI编码   ANSI字面意思是“美国国家标准协会”American National Standards Institute在Windows系统的编码处理中一般用ANSI来代表系统默认编码方式而且并不是确定的某一种编码方式——在简体中文操作系统中ANSI编码默认指的是GB系列编码(GB2312、GBK、GB18030)在繁体中文操作系统中ANSI编码默认指的是BIG5在日文操作系统中ANSI编码默认指的是Shift JIS等等。 参考文献 [1] http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html [2]http://pcedu.pconline.com.cn/empolder/gj/other/0505/616631_all.html#content_page_2 对原作者表示尊重
http://wiki.neutronadmin.com/news/287427/

相关文章:

  • 昆明网站seo优化抚宁建设局网站
  • 上海市建设工程检测行业协会网站网站建设静态代码
  • 橙色主题手机网站wordpress 建门户网站
  • cms网站开发教程给媳妇做的网站
  • 哪里有找工作的网站个别网站网速慢怎么做
  • 工信部网站备案被删除怎么免费创建个人网站
  • 苏州惊天网站制作网wordpress o2o
  • 济南品牌网站建设低价wordpress用户后台
  • 怎么用网吧电脑做网站服务器吗网站首页图片做多大
  • 郑州网站制作公司哪家好大连谷歌seo公司
  • 营销最好的网站建设公司新颖的互联网公司名字
  • mysql asp网站开发网站做图分辨率
  • 网站建设制作需求品牌设计法则
  • 优秀企业网站设计要点高德vr全景地图下载
  • wordpress文章版权信息合肥seo网站推广外包
  • 石家庄网站搭建小城镇建设期刊网站
  • 怎么做原创动漫视频网站设计精美的网站
  • 怎么给公司注册网站网络设计方案书中内容很多
  • 上海做网站比较好的公司有哪些关于网络营销的论文
  • 淘客网站如何做广州网站建设程序员培训
  • 招投标网站销售怎么做以学校为目标做网站策划书
  • 怎么进入公司网站中国十大公关公司
  • 淮南服装网站建设费用wordpress php5.5
  • 郑州 做网站mooc网站建设
  • wordpress 显示一篇文章太原seo网站排名
  • 西安网站制作百亿科技网站被黑怎么恢复
  • 海纳企业网站管理系统源码如何自己制作图片
  • 移动端网站的优点史志网站建设必要性
  • 门户网站建设全包郑州网站如何制作
  • 网站建设容易吗阜新市建设小学网站