惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
D
Docker
Microsoft Security Blog
Microsoft Security Blog
Google DeepMind News
Google DeepMind News
M
MIT News - Artificial intelligence
P
Proofpoint News Feed
Engineering at Meta
Engineering at Meta
Y
Y Combinator Blog
Vercel News
Vercel News
F
Fortinet All Blogs
B
Blog
Recent Announcements
Recent Announcements
A
About on SuperTechFans
GbyAI
GbyAI
T
The Blog of Author Tim Ferriss
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - Franky
MongoDB | Blog
MongoDB | Blog
Stack Overflow Blog
Stack Overflow Blog
B
Blog RSS Feed
C
Check Point Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
Visual Studio Blog
月光博客
月光博客

博客园 - 老三

“内部开源” 视野,自学,和其他 反编译yield未解决问题记录 编译,调试mono运行时 确实,是有学习曲线的 mono 的Sgen mono 执行顺序 *nix mono 找不到 MySql.Data Could not be loaded *nix,mono运行reflector MD5加密引出的一段代码 【翻译】正确的精神 11期Beta技术沙龙总结体会 记一次Cookie调试 Hubble.net Maillist 【译文】版本一很糟,但也坚持发布 《重构》读书体会以及近期相关工作 NHibernate no session or session was closed问题以及NH最佳实践 推荐the productive programmer Vim 还是 Emacs
UTF8编码
老三 · 2010-05-08 · via 博客园 - 老三

最近项目中经常用到UTF8编码以及BASE64操作。

于是有兴趣看看UFT8编码到底怎么回事。UTF8Ken ThompsonRob pike 两位大神完成的。

具体的实际上有一个表就可以弄明白了:

0XXXXXXX

110XXXXX 10XXXXXX

1110XXXX 10XXXXXX 10XXXXXX

11110XXX 10XXXXXX 10XXXXXX 10XXXXXX

UTF8编码1-4byte长度表示所有的Unicode。表格中的数字,表示固定的占位符,X表示真实的值。

那么可以表达的长度分别为:

1byte 2^7 -1

2byte 2^11 -1

3byte 2^16 -1

4byte 2^21 -1

表示方式不复杂,有时间看看.NET/mono的具体实现。