b unicode & base64 & url code 常用code解释说明
unicode
unicode,ascll码只能显示128个数,所以unicode允许多个字节表示
详细介绍
unicode 有三种编码:1byte、2byte或3byte
utf-8
在HTML和类似协议上非常常用。UTF-8使用变长编码。它的优点是,对应于ASCII字符集的那些Unicode字符的字节值与它们在ASCII中的值完全相同,因此使用UTF-8编码的Unicode字符可以在绝大多数已有软件上使用,无需对软件做出任何修改。
utf-16
UTF-16在许多需要平衡性能和存储效率的环境中非常常用。它足够紧凑,所有常用的字符都可以用一个16比特的代码单元来表示,其他字符可以使用一对16比特代码单元来表示。
UTF-32
在无需顾虑内存空间的情况下使用,它是定长编码,每个字符只有一个代码单元。每个Unicode字符编码成一个32比特代码单元。
url 转义字符
避免歧义导致的解析错误,比如如果参数值包含=
,或者包含中文。
所以将字符转为安全字符
不错的博客
字符 | URL编码值 |
---|---|
空格 | %20 |
" | %22 |
# | %23 |
% | %25 |
& | %26 |
( | %28 |
) | %29 |
+ | %2B |
, | %2C |
/ | %2F |
: | %3A |
; | %3B |
< | %3C |
= | %3D |
> | %3E |
? | %3F |
@ | %40 |
\ | %5C |
| | %7C |
保留字符
不安全字符
base64
http经常使用。
- http需要把二进制数据转化为字符
- 但是http只能传输ascll中的95个字符,那么其余字符可用base表示
- base64本质是用64个字符代编二进制编码,64就是6bit,一个base64字符只代表6位
- 一个ascll码是8位,所以4个base64 == 3个ascll码
转化规则
比如son
通过Base64编码转换成了U29u
base64规定,当需要转换的字符不是3的倍数时,一律采用补0的方式凑足3的倍数