关于2进制和16进制、以及字符编码的回顾(先挖坑,后填埋)

http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html
http://www.joelonsoftware.com/articles/Unicode.html
http://blog.youkuaiyun.com/sfdev/article/details/3770706 (推荐)

2进制 逢2进1
16进制 逢16进1

1、ASCII
美国信息交换标准代码 American Standard Code for Information Interchange
用指定的7位或8位二进制数组合来表示128或256种可能的字符。
例如 a ,97就是其对应的ascii编码
ascii 是 二进制表示的字符编码集合

2、unicode
Universal Multiple-Octet Coded Character Set,简称为UCS
unicode 是用16进制表示的字符编码集合,例如“密” 的 unicode的编码是 5bc6

unicode表示一种字符集合,但是不同字符占用的位数不同,有的可能占用1个字节就够了,例如 'a' ,而有的可能占用2个以上字节,例如 “啊” ;这就带来了存储格式的问题,统一采用最长字节存储,不足的补0,则会带来空间上的浪费,基于这种情况,演变出 UTF-8、UTF-16、UTF-32等等unicode的实现方式(即编码方式)
UTF(UCS Transformation Format)

UTF-16 用两个字节表示一个符号,基本等同于UCS-2。

UTF-8最大的一个特点,就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。
1)对于单字节的符号,字节的第一位设为0,后面7位为这个符号的unicode码。因此对于英语字母,UTF-8编码和ASCII码是相同的。
2)对于n字节的符号(n>1),第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的unicode码。


Unicode符号范围 | UTF-8编码方式
(十六进制) | (二进制)
--------------------+---------------------------------------------
0000 0000 - 0000 007F | 0xxxxxxx
0000 0080 - 0000 07FF | 110xxxxx 10xxxxxx
0000 0800 - 0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx
0001 0000 - 0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx



http协议的编码设置
请求头Accept-Charset 是告诉服务器,浏览器可以接受的字符集,如果服务器不支持该字符集,应该返回406的error
响应头Content-Type 中的 charset则将告诉浏览器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值