计算机编码介绍_第1页
计算机编码介绍_第2页
计算机编码介绍_第3页
计算机编码介绍_第4页
计算机编码介绍_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

几种常用编码的介绍一、base64编码二、QuotedPrintable编码内容三、UTF8编码四、GB2312编码Base64是一种传输编码;是为了适应将任何计算机数据都表示成便于显示和排版的字符串;Base64中的64个字符是:“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/0123456789”Base64编码-介绍2的6次方等于64。因为base64只有64个可用字符,所以它编码后的每个字节只能表示6个bit的信息内容;我们待编码的内容是8个bit的,所以就造成了编码以后的数据比原来的数据要长;6和8的最小公倍数是24,故base64的最小编码单元是24bit,四个字符。Base64编码-介绍Base64编码-举例例如我们要对字符串“123”编码:“123”对应的16进制数为:0x310x320x33;表示成二进制数表示如下:001100010011001000110011;将二进制数每6位分成一组表示如下:001100010011001000110011;每6位分段后得到的四个数字分别是:1219851在base64编码表中查表对应的字符:MT

I

z所以字符串”123”编码后是“MTIz”Base64编码-特例例如我们要对字符串“12312”编码:“123”对应的16进制数为:0x310x320x330x310x32;表示成二进制数表示如下:0011000100110010001100110011000100110010;将二进制数每6位分成一组表示如下:001100010011001000110011001100010011001000;注意:因为原始字符串不是3的倍数,分出来后最后一组缺两位,需要补零。每6位分段后得到的七个数字分别是:121985112198在base64编码表中查表对应的字符:MT

I

zMTI不够一个6位分组单元的补0,不够一个编码单元(4个字节)的补“=”号,编码后的字符串是”MTIzMTI=“Base64编码-其他base64编码后的数据只能出现base64里面的64个字符、用于补齐的‘=’号和回车换行符。回车换行必须出现在4的整数倍个字符后,‘=’只能出现在每4个字符单元的最后一个或最后两个。举例:EFH/ABC=HIaCAB==ABCDA+/=ABC=ABCA===,A=BC,AB=CQuotedprintable编码Outlook翻译为:“括上的可打印项目”这个编码非常简单,但是数据冗余量非常大。例如将“123”进行编码:“123”对应的16进制数分别是0x310x320x33编码后的字符串为”=31=32=33”编码后数据的长度是编码前数据长度的3倍,是一种非常简单但很不经济的一种编码方法。UTF-8编码-背景UTF-8意思是UniversalTransformationFormat通用转换格式;UTF-8用1-6个字节编码Unicode字符,用在网页上可以同一个页面显示中文简体、繁体及其他语言,称为万国码。ASCII字符集1-128大小写英语字符、数字、标点、换行制表控制等;ASCII扩展字符集128-255一些欧洲文字,拉丁字母Unicode字符集:所有字符用两个字节表示,高字节为零的表示ASCII字符集内容,高字节不是零的代表了其他语言里的字符,如汉语、日语、韩语、越南语等。UTF-8编码-产生原因因为Unicode表示ASCII字符时不经济:一个字符用两个字节表示,且主机间传输时存在字节序的问题:x86平台和ppc平台不一样,0xAABB怎么解析需要约定。所以出现了一种中间格式的字符集,称为通用转换格式,有UTF-7、-7.5、-8、-16、-32等。UTF-8编码-转换方法128以内:Unicode=UTF-8;128-2047:00000xxxxxxxxxx->110xxxxx10xxxxxx2048-65535:

xxxxxxxx

xxxxxxxx->1110xxxx10xxxxxx10xxxxxx65536-2097151:

000xxxxxxxxxxxxx

xxxxxxxx->11110xxx10xxxxxx10xxxxxx

10xxxxxx2097152-67108863:

000000xxxxxxxxxx

xxxxxxxx

xxxxxxx->111110xx10xxxxxx10xxxxxx

10xxxxxx

10xxxxxx67108863-2147483647:

0xxxxxxxxxxxxxxx

xxxxxxxx

xxxxxxxx->1111110x10xxxxxx10xxxxxx

10xxxxxx

10xxxxxx

10xxxxxxUTF-8编码-优缺点优点:(1)转换方便,只需位运算;(2)ASCII字符集不用转换,不增加存储空间;(3)没有字节序的问题;(4)编码中不会出现0xFF和0xFE,因此这两个字符可以用来表用UTF-16或UTF-18文本;缺点:(1)变长,无法从Unicode字符长度判断转为UTF-8后的字符长度;(2)拉丁字符时Unicode的子集不是utf-8的子集,需要转换;(3)大部分两个字节的Unicode字符被扩展成3个字节;(中文用UTF-8编码后绝大多数情况下会变长)GB2312编码GB2312编码和UTF8编码不是并列的关系;GB2312收录了6763个汉字和682个非汉字图形字符;整个字符集分94个区,每区94个区位,每区位表示一个字符;1-9区为特殊符号,16-55区按拼音排序为一级汉字,56-97区按部首笔画排序为二级汉字;用区位表示的码叫区位码:例如“啊”位于第16区第一区位,区位码=0x1001;区位码加上

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论