wordpress网站外包,蚁坊舆情,怎么利用国外网站做互联网挣钱,网站及app开发招聘作者#xff1a;uuspider 链接#xff1a;https://www.zhihu.com/question/23374078/answer/65352538 来源#xff1a;知乎 著作权归作者所有。商业转载请联系作者获得授权#xff0c;非商业转载请注明出处。
举一个例子#xff1a;Its 知乎日报
你看到的unicode字符集…作者uuspider 链接https://www.zhihu.com/question/23374078/answer/65352538 来源知乎 著作权归作者所有。商业转载请联系作者获得授权非商业转载请注明出处。
举一个例子Its 知乎日报
你看到的unicode字符集是这样的编码表
I 0049
t 00740027
s 00730020
知 77e5
乎 4e4e
日 65e5
报 62a5每一个字符对应一个十六进制数字。
计算机只懂二进制因此严格按照unicode的方式(UCS-2)应该这样存储
I 00000000 01001001
t 00000000 0111010000000000 00100111
s 00000000 0111001100000000 00100000
知 01110111 11100101
乎 01001110 01001110
日 01100101 11100101
报 01100010 10100101这个字符串总共占用了18个字节但是对比中英文的二进制码可以发现英文前9位都是0浪费啊浪费硬盘浪费流量。
怎么办
UTF。
UTF-8是这样做的
1. 单字节的字符字节的第一位设为0对于英语文本UTF-8码只占用一个字节和ASCII码完全相同
2. n个字节的字符(n1)第一个字节的前n位设为1第n1位设为0后面字节的前两位都设为10这n个字节的其余空位填充该字符unicode码高位用0补足。
这样就形成了如下的UTF-8标记位
0xxxxxxx 110xxxxx 10xxxxxx 1110xxxx 10xxxxxx 10xxxxxx 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx ... ...
于是”Its 知乎日报“就变成了
I 01001001
t 0111010000100111
s 0111001100100000
知 11100111 10011111 10100101
乎 11100100 10111001 10001110
日 11100110 10010111 10100101
报 11100110 10001010 10100101和上边的方案对比一下英文短了每个中文字符却多用了一个字节。但是整个字符串只用了17个字节比上边的18个短了一点点。
下边是课后作业
请将”Its 知乎日报“的GB2312和GBK码(自行google)转成二进制。不考虑历史因素从技术角度解释为什么在unicode和UTF-8大行其道的同时GB2312和GBK仍在广泛使用。
剧透一切都是为了节省你的硬盘和流量。