- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编码与字符集 殷坤 2015年7月16日 ASCII编码: 计算机中存放的都是0和1的二进制值。8个位对应一个字节,常用16进制来表示 而我们普通用户所希望看到的是,计算机把其所存储的对应的16进制的数值,转化为对应的字符,包括英文和中文等其他语言的字符,然后输出到屏幕上 美国国家标准学会(American National Standard Institute , ANSI )制定的,标准的单字节字符编码方案,主要用于显示现代英语和其他西欧语言 ASCII字符集共2^7=128个字符 = 33个控制字符 + 95个可见字符 这点数量的字符也就懂英语的可以用!!!! 字符集和编码方式的多样化 字符集 描述 ISO-8859-1 支持部分欧洲使用的语言,编码范围:0x00-0xFF,0x00-0x7F与ASCII一样,0x80-0x9F之间是控制字符,0xA0-0xFF之间是文字符号 GB2312 共收入简体汉字6763个和非汉字图形字符682个,汉字区域,高位为0xB0-0xF7,低位为0xA1-0xFE,整个字符集分成94个区,每区有94个位。每个区位上只有一个字符 GBK GBK向下与GB2312编码兼容,增加了14000多字,采用双字节表示,总体编码范围为 8140-FEFE,首字节在 81-FE 之间,尾字节在40-FE之间 Unicode Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案,Unicode用数字0-0x10FFFF来映射这些字符,最多可以容纳1114112个字符 UTF-8(编码) 是一种针对Unicode的可变长度字符编码,又称万国码,一个字节跟ASCII一样,其他的每个字节由一个换码序列开始,第一个字节由唯一的换码序列,由n位连续的1加一位0组成, 首字节连续的1的个数表示字符编码所需的字节数 随着计算机在全世界的广泛使用,字符的显示要考虑加入其他国家的语言文字 JAVA的字符串处理 编码: 1.byte[] getBytes(): 使用系统默认的字符集编码成byte数组 2.byte[] getBytes(String charset): 使用给定的charset字符集编码成byte数组 解码: 1.String(byte[] bytes): 使用系统默认的字符集解码指定的byte数组,并构建新的字符串 2.String(byte[] bytes,String charset): 使用指定的字符集解码并创建新的字符串 Unicode与UTF-8的转换 Unicode编码(十六进制) UTF-8 字节流(二进制)- 0000007F 0xxxxxxx- 000007FF 110xxxxx 10xxxxxx- 0000FFFF 1110xxxx 10xxxxxx 10xxxxxx- 001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx- 03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx- 7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx “汉”字的Unicode编码是0x6C49。0x6C49在0x0800-0xFFFF之间,使用用3字节模板了:1110xxxx 10xxxxxx 10xxxxxx。将0x6C49写成二进制是:0110 1100 0100 1001, 用这个比特流依次代替模板中的x,得到10110001即E6 B1 89 GBK、GB2312转换为UTF-8 GBK是一种字符集,UTF-8是基于Unicode的编码方式,所以核心问题就是GBK与Unicode的转化问题。 既然是两个字符集的转换问题,那么自己去查表吧! HTTP协议的编码 HTTP协议总体分为HTTP头和实体内容(Get请求一般不需要),请求有请求行,响应有状态行。 实体内容的编码一般由头部的content-type决定 而对于Get请求,都是把数据串联在请求的url后面作为参数,url拼接完成后,浏览器会对url进行URI Encoder,然后发送给服务器。 URLEncoder:英文字母不变,. * _ -不变,空格字符变成+,其他字符先使用某个编码机制然后每个字节用一个包含3个字符的字符串%xy 表示,其中xy为该字节的两位十六进制表示形式 Base64编码 Base64是网络上最常见的用于传输8bit字节代码的编码方式
文档评论(0)