下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、个人收集整理仅供参考学习编码用预先规定的方法将文字、数字或其他对象编成数码,或将信息、数据转换成规定的 电脉冲信号。编码在 电子计算机、电视、遥控和通讯等方面广泛使用。编码是信息从一种 形式或格式转换为另一种形式的过程。解码,是编码的逆过程。1.文件编码用 windows的记事本编写的 txt文件,保存后有 4中编码格式: ANSI、unicode、unicode big endian UTF-8。不同编码的文本,大部分可以根据文本的前两个字节来判断其编码格式。Unicode、Unicode big endian和UTF-8编码的txt文件的开头会多出几个字节, 分别是FF、FE Unicod
2、e),FE、 FF ( Unicode big endian ) ,ER BB BF ( UTF-8)ANSI码介绍1 .ASCII 码2 .概述目前计算机中用得最广泛的字符集及其编码,是由美国国家标准局(ANSI)制定的ASCII码(American Standard Code for Information Interchange, 美国标准信息交换码 ),它已被国际标准化组织(ISO)定为国际标准,称为 ISO 646标准。适用于所有拉丁文字字母,ASCII码有7位码和8位码两种形式。7位ASCII码是用七位二进制数进行编码的,可以表示128个字符。第032号及第127号(共34个)是控
3、制字符或通讯专用字符,如控制符:LF (换行)、CR (回车)、FF (换页)、DEL (删除)、BEL (振铃)等;通讯专用字符:SOH (文头)、EOT(文尾)、ACK(确认)等;第33126号(共94个)是字符,其中第4857号为09十个阿拉伯数字;6590号 为26个大写英文字母,97122号为26个小写英文字母,其余为一些标点符号、运算符号 等。注意:在计算机的存储单元中,一个 ASCII码值占一个字节(8个二进制位),其最高位 (b7)用作奇偶校验位。所谓奇偶校验,是指在代码传送过程中用来检验是否出现错误的一种 方法,一般分奇校验和偶校验两种。奇校验规定:正确的代码一个字节中 1的
4、个数必须是奇数,若非奇数,则在最高位 b7添1;偶校验规定:正确的代码一个字节中1的个数必须是偶数,若非偶数,则在最高位b7添1。3 .ASCII 表ASCII 值16进制控制 字符ASCII 值16进制控制 字符ASCII 值16进制控制 字符ASCII 值16进制控制 字符000HNUT3220H(space)6440H9660H、101HSOH3321H!6541HA9761Ha202HSTX3422H6642HB9862Hb303HETX3523H#6743HC9963Hc404HEOT3624H$6844HD10064Hd505HENQ3725H%6945HE10165He606HA
5、CK3826H&7046HF10266Hf707HBEL3927H,7147HG10367Hg808HBS4028H(7248HH10468Hh909HTAB4129H)7349HI10569Hi100AHLF422AH*744AHJ1066AHj110BHVT432BH+754BHK1076BHk120CHFF442CH、764CHL1086CHl130DHCR452DH-774DHM1096DHm140EHSO462EH.784EHN1106EHn150FHSI472FH/794FHO1116FHo1610HDLE4830H08050HP11270Hp1711HDCI4931H18
6、151HQ11371Hq1812HDC25032H28252HR11472Hr1913HDC35133H38353HX11573Hs2014HDC45234H48454HT11674Ht2115HNAK5335H58555HU11775Hu2216HSYN5436H68656HV11876Hv2317HETB5537H78757HW11977Hw2418HCAN5638H88858HX12078Hx2519HEM5739H98959HY12179Hy261AHSUB583AH:905AHZ1227AHz271BHESC593BH;915BH1237BH281CHFS603CH<925CH
7、/1247CH|291DHGS613DH=935DH1257DH301EHRS623EH>945EH八1267EH311FHUS633FH?955FH一1277FHDEL控制字符注释ASCI值16进制控制字符注释ASCII 值16进制控制字符注释000HNUL空1711HDCI设备控制1101HSOH头标开始1812HDC2设备控制2202HSTX正文开始1913HDC3设备控制3303HETX正文结束2014HDC4设备控制4404HEOT传输结束2115HNAK反确认505HENQ查询2216HSYN同步空闲606HACK确认2317HETB传输块结束707HBEL震铃2418HCA
8、N取消808HBS退格2519HEM媒体结束909HTAB水平制表符261AHSUB替换100AHLF换行271BHESC转意110BHVT垂直制表符281CHFS文件分割符120CHFF换页/新页291DHGS组分割符130DHCR回车301EHRS记录分割符140EHSO移出311FHUS单元分割符150FHSI移入1610HDLE数据链路转息ASCII字符代码表一缸0sen非打印:学早开49211打通:仔-00J0DCD1091301101C0met01.0U. IL£1;23466T筝李春e"j侬十港*1李痔rrLMH字的得的HiH年用中也.期字花TIM界荐联+%字
9、料el tlUE030SBUHL mo7至itkDLF小希稹肥转盘324a0鹏80PEG j *112p010111Qr ASOI事后开跑it.Firi不看客K L下!4g1鹃A81Q67aHIq22* ISU£劫妫19.工KJ弱射造二.23BdER部b“qrQ0U33ym王中安不15ir4 1ro曲二技a1*#包3CTCS3S99c11.5s010344FEJT筌后都2J11DCC曲工在出136$324的D骊T190dliet01015小F斯海3 LyNRI庆都k%535鹤E49U1Weinu011GSt*FA£I32Tmi砒痉阳靠&UI670F幽VF119V01
10、1171飞血2JtrETA羽1S5771GS7WgIISw打8090*S膈漫格£«rw*40i65812H晚XIMhIMX1(01ggoTTO学牛利寿蓄25irEl41)57973弛YIDEL211U0A10回FLF怏行庠行2S* 1SOT4Z67<J90ZIDStIZ2工1i: 11Bit<3* EVT鳖直利等2TrEW43151£01137k121(1皿c12- 1收原其由支2B44皿<76L9210B11网11101口DrrCRaS5+-T心<511M93I1阵m*瑞)1110富|4究31A*«KS必踊拜4百.能>18
11、N如MDn14 11?5L : - ' 051淳耳31TA1JS47/©3?790SSHi0127A电Hr系中tfUSH评穆中就lALf * . 卜置母上船*万的”4 .CC+的转义字符所有的ASCII码都可以用"”加数字(一般是8进制数字)来表示。而 C中定义了一些字 母前加""来表示常见的那些不能显示的 ASCII字符,如0,t,n等,就称为转义字符,因为后 面的字符,都不是它本来的 ASCII字符意思了。转义字符意义ASCII码值(十进制)a 响铃(BEL) 007b 退格(BS) 008f 换页(FF) 012n 换行(LF) 010r
12、回车(CR) 013t水平制表(HT) 009v垂直制表(VT) 011反斜杠092?问号字符 063'单引号字符039"双引号字符 0340 空字符(NULL) 000ddd任意字符三位八进制xhh任意字符二位十六进制a:蜂鸣,响铃b:回退:向后退一格f:换页n:换行,光标到下行行首r:回车,光标到本行行首t:水平制表v:垂直制表:反斜杠':单引号":双引号?:问号ddd:三位八进制xhh:二位十六进制0:空字符(NULL)什么都不做注:1, v垂直制表和f换页符对屏幕没有任何影响,但会影响打印机执行响应操作。2, n其实应该叫回车换行。换行只是换一行,不
13、改变光标的横坐标;回车只是回到行首, 不改变光标的纵坐标。3, t光标向前移动四格或八格,可以在编译器里设置4, '在字符里(即单引号里)使用。在字符串里(即双引号里)不需要,只要用即可。5, ?其实不必要。只要用 ?就可以了(在 windows VC6和tc2中验证)。4.键盘常用ASCII码ESC VK_ESCAPE (27) 回车键:VK_RETURN (13)TAB 键:VK_TAB (9)Caps Lock 键: VK_CAPITAL (20)Shift 键:VK_SHIFT ($10)Ctrl 键: VK_CONTROL (17)Alt 键: VK_MENU (18) 空格
14、键:VK_SPACE ($20/32) 退格键:VK_BACK (8)左徽标键:VK_LWIN (91)右徽标键:VK_LWIN (92)鼠标右键快捷键:VK_APPS (93) Insert 键:VK_INSERT (45) Home 键: VK_HOME (36) Page Up: VK_PRIOR (33) PageDown: VK_NEXT (34) End 键: VK_END (35) Delete 键: VK_DELETE (46) 方向键(f VK_LEFT (37) 方向键(” VK_UP (38) 方向键(一,VK_RIGHT (39) 方向键(J VK_DOWN (40)
15、F1 键:VK_F1 (112) F2 键: VK_F2 (113) F3 键: VK_F3 (114) F4 键: VK_F4 (115) F5 键: VK_F5 (116) F6 键: VK_F6 (117) F7 键: VK_F7 (118) F8 键: VK_F8 (119) F9 键: VK_F9 (120) F10 键: VK_F10 (121) F11 键: VK_F11 (122) F12 键: VK_F12 (123)Num Lock 键: VK_NUMLOCK (144) 小键盘 0: VK_NUMPAD0 (96) 小键盘 1 : VK_NUMPAD0 (97) 小键盘
16、2: VK_NUMPAD0 (98) 小键盘 3: VK_NUMPAD0 (99) 小键盘 4: VK_NUMPAD0 (100) 小键盘 5: VK_NUMPAD0 (101) 小键盘 6: VK_NUMPAD0 (102) 小键盘 7: VK_NUMPAD0 (103) 小键盘 8: VK_NUMPAD0 (104) 小键盘 9: VK_NUMPAD0 (105) 小键盘.: VK_DECIMAL (110) 小键盘 * : VK_MULTIPLY (106) 小键盘 +: VK_MULTIPLY (107) 小键盘-:VK_SUBTRACT (109) 小键盘 /: VK_DIVIDE
17、(111) Pause Break 键: VK_PAUSE (19) Scroll Lock 键: VK_SCROLL (145)2.GB编码1 .GB2312 编码每个汉字及符号以两个字节来表示。第一个字节称为高位字节”(也称 区字节)”,第二个字节称为 低位字节”(也称 位字节”)。GB2312编码适用于汉字处理、汉字通信等系统之间的信息交换,通行于中国大陆;新 加坡等地也采用此编码。中国大陆几乎所有的中文系统和国际化的软件都支持GB 2312。基本集共收入汉字 6763个和非汉字图形字符 682个。整个字符集分成 94个区,每区 有94个位。每个区位上只有一个字符,因此可用所在的区和位来
18、对汉字进行编码,称为区 位码。2 .GBK编码GBK是汉字编码标准之一,全称汉字内码扩展规范(GBK即国标“、扩展"汉语拼音的第一个字母,英文名称:Chinese Internal Code Specification )。GBK编码,是在 GB2312-80标准基础上的 内码扩展规范,使用了双 字节编码方案,其 编码范围从8140至FEFE(剔除xx7F),共23940个码位,共收录了 21003个汉字,完全兼 容GB2312-80标准,支持国际标准ISO/IEC10646-1和国家标准 GB13000-1中的全部中日韩汉 字,并包含了 BIG5编码中的所有汉字GBK向下与 GB
19、2312编码兼容,向上支持 ISO 10646.1国际标准,是前者向后者过渡 过程中的一个承上启下的标准。3 .ASNI缺陷当txt文档中一切字符都在 C(X AA(第一个字节) WEF; 80WBB(第二个字节) W BF这 个范围时,notepad都无法确认文档地格式,没有自动依照UTF-8格式来"Display"。当新建文本文档只输入 联通”/保存 再打开时将是乱码,"联通"就是C1 AA CD A8, 刚好在上面地范围内,所以不能正常显现。记事本默认是以 ANSI编码保存文本文档的,而正是这种编码存在的 bug招致了上述怪 现象。假如保存时选择
20、Unicode> Unicode(big endian)、UTF-8编码就正常了。此外,假如以 ANSI编码保存含有某些特别符号的文本文档,再次打开后符号也会变成英文问号。Unicode/UCSUnicode 码、UTFUnicode (统一码、万国码、单一码)是一种在计算机上使用的字符编码,是统一码联盟为了世界上大多数文字系统进行整理和编码。Unicode码扩展自ASCII字元集,使用全16位元字元集使得它功能表示世界上所有的书 写语言中可能用于电脑通讯的字元、象形文字和其他符号。Unicode码是一种国际标准编码,采用二个字节编码,与 ANSI码不兼容。目前,在网络、Windows系
21、统和很多大型软件中得到应用。Unicode2.0后基本和ISO 10646规范保持一致.UTF,是 UnicodeTransformationFormat的缩写,意为 Unicode 转换格式。 如果 UNICODE 字符由2个字节表示,则编码成 UTF-8很可能需要3个字节,而如果 UNICODE字符由4个 字节表示,则编码成 UTF-8可能需要6个字节。事实证明,对可以用 ASCH表示的 字符使用UNICODE并不高效,因为 UNICODE比ASC n占用大一倍的空间,而对ASCH来说高 字节的0对他毫无用处。为了解决这个问题,就出现了一些中间格式的 字符集,他们被称为通用转换格式,即 U
22、TF ( Universal Transformation Format)。目存在的 UTF格式有:UTF-7,UTF-7.5,UTF-8UTF-16,以及 UTF-32。本文讨论 UTF-8 字符集的基础。2.UCS和Unicode类似,ISO组织也在做同样的事情,ISO开展了 ISO/IEC 10646项目,名字叫 Universal Multiple-Octet Coded Character Set',简称 UCSUCS有两种格式:UCS-2和UCS-4顾名思义,UCS-2就是用两个字节编码,UCS-4就是用4个字节(实际上只用了31位,最高位必须为 0)编码。后来,双方意识到
23、时间上不需要2套通用的字符集,所以双方开始进行整合,到Unicode2.0时,Unicode的编码和UCS的编码都基本一致。4 .编码标准Unicode在编码上和 UCS保持一致,在实现上有自己的规则,而UCS只定义了编码标准。Unicode的实现形式上有UTF-8,UTF-16,UTF-32还有UTF-7等。UCS编码也有自己的格 式:UCS-2和UCS-4等等。Unicode的编码可以和 UCS-2和UCS-4保持一致。但是又略有不同。UTF-16是UCS-2的 扩展,UTF-32是UCS-4的子集。也就是说,UTF-16的实现上对code point的支持范围超过UCS-2而UTF-32
24、对code point的表示却又在 UCS-4的范围之内。在编码层面上,UCS-2就是用两个字节编码,UCS-4就是用4个字节(实际上只用了31位,最tWj位必须为 0)编码。5 .UTF-8 编码UTF-8(8-bit Unicode Transformation Format是 种针对 Unicode 的可变长度字符编码, 又称万国码,现在已标准化为RFC 3629标准UTF-8编码的文件是以 0XEF 0XBBFF头,如果读到该标志,则可以以UTF-8方式进行UCS-2的转码。但是当程序读取部分内容进行编码的时候则与UCS-2方式有很大的不同!根据规范,采用UTF-8方式进行编码的字符可
25、以有从1到6个字节的不等长度。因此程序必须从缓冲区末尾开始判断最后一个UTF-8字符出现的位置,以防出现只包含字符的部分内容从而导致转码失败。1 .编码规则如果UNICODE字符由2个字节表示,则编码成 UTF-8很可能需要 3个字节。而如果 UNICODE字符由4个字节表示,则编码成UTF-8可能需要6个字节。用4个或6个字节去编 码一个UNICODE字符可能太多了,但很少会遇到那样的 UNICODE字符。UTF-8转换表表示如下:Unicode/UCS-4bit数UTF-8byte 数备注0000 007F070XXX XXXX10080 07FF811110X XXXX10XX XXXX
26、21110 XXXX0800 FFFF121610XX XXXX3基本定义范围:0FFFF10XX XXXX1111 0XXX1 0000 1F FFFF172110XX XXXX10XX XXXX10XX XXXX1111 10XX4Unicode6.1 定义范围:010 FFFF20 0000 3FF FFFF222610XX XXXX10XX XXXX10XX XXXX10XX XXXX5说明:此非Unicode编码范围,属于UCS-4编码早期的规范UTF-8可以到达6字节序列,可以覆盖到 31位元 (通用字符集原来的极限)。尽管如此,2003年11月UTF-81111 110X10XX
27、 XXXX10XX XXXX10XX XXXX400 0000 7FFFFFFF27316被RFC 3629重新规范,只能使用原来 Unicode定义的区域, U+0000到U+10FFFF。根据规范,这些字节值将无法出现在合法UTF-8序列中10XX XXXX10XX XXXX实际表示 ASCII字符的UNICOD分符,将会编码成1个字节,并且UTF-8表示与ASCII 字符表示是一样的。所有其他的UNICOD笄符转化成UTF-8将需要至少2个字节。每个字节由一个换码序列开始。 第一个字节由唯一的换码序列,由n位连续的1加一位0组成,首字节连续的1的个数表示字符编码所需的字节数。Unicod
28、e转换为UTF-8时,可以将Unicode二进制从低位往高位取出二进制数字,每次 取6位,如上述的二进制就可以分别取出为如下示例所示的格式,前面按格式填补,不足8位用0填补。注:Unicode转换为UTF-8需要的字节数可以根据Unicode二进制的位数除以 6来计302 .实例UNICODE uCA(1100 1010)编码成UTF-8将需要2个字节:uCA -> C3 8AUNICODE uF03F (11110000 0011 1111)编码成 UTF-8 将需要 3 个字节: u F03F -> EF 80 BF3 .缺点5 .UTF-16 编码16位UCS转换格式,字节顺序由流中的前两字节中字节顺序标记来确定。UTF-16比起UTF-8,好处在于大部分字符都以固定长度的字节(2字节)储存,但UTF-16却无法兼容于 ASCII编码。c#中默认的就是 UTF-16,所以在处理 c行符串的时候只能是 byte,stream等方式去处理UTF-16是Unicode字符编码
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 外用电源租赁合同范本
- 夜班装备租赁合同范本
- 固定收益信托合同范本
- 土地合作协议劳动合同
- 基金产品转让合同范本
- 国际特许经营合同范本
- 园林作物买卖合同范本
- 国企采购柴油合同范本
- 外卖店铺加盟合同范本
- 商铺转让合同解除协议
- 淋巴瘤全套课件
- 打钻工安全培训内容
- 药代动力学脑内分布研究-洞察及研究
- 茶叶生产企业质量管理体系手册
- 变电运维培训大纲
- 云计算资源租用协议
- 医疗器械批发行业的合规风险与解决方案研究-洞察及研究
- 国际压力性损伤-溃疡预防和治疗临床指南(2025年版)解读
- DB32-T 5155-2025 桥梁用碳纤维增强复合筋拉索技术条件
- 2025至2030中国水资源修复行业发展趋势分析与未来投资战略咨询研究报告
- 2025年医卫类内科主治医师-基础知识参考题库含答案解析
评论
0/150
提交评论