快来领取一场专门讲解UTF-8与UTF-16编码算法的GitChat活动的免费名额

快来领取一场专门讲解UTF-8与UTF-16编码算法的GitChat活动的免费名额

微信扫一扫,可打开该GitChat活动页面

字符编码是计算机世界里最基础、最重要、最令人困惑的一个主题之一。不过,在计算机教材中却往往浮光掠影般地草草带过,甚至连一本专门进行深入介绍的专著都找不到(对这一点我一直很困惑,为什么就没有哪位大牛对这个如此基础、重要而又如此容易让人困惑的主题写一本专著予以介绍呢)。

字符编码的基础性、重要性,主要体现在它涉及面广。向下涉及到计算机的底层技术,甚至是硬件实现;向上几乎跟所有的操作系统、编程语言、应用程序都密切相关。而字符编码之所以成为了最令人困惑的主题之一,在于因为历史的原因所导致的乱麻一样的概念混乱、术语混用、理解混淆。

在编程实践中,如果不发扬死磕到底的精神将字符编码问题的来龙去脉、前世今生彻底搞清楚,那么它终将会像幽灵一样挥之不去,导致时不时地被各种与字符编码相关的“灵异”事件折磨得死去活来。

本人正是在经受了字符编码所带来的种种令人崩溃的痛苦之后,才在痛定思痛之余,最终痛下决心,誓要将它刨根究底。(为此,本人还专门写了一个《刨根究底字符编码》系列文章,目前已在博客园发布了13篇)。

而随着Unicode字符集统一了全球字符,其UTF编码方式也逐渐成为了全球认可的字符编码方式。其中,目前应用最为广泛的是UTF-8编码方式与UTF-16编码方式。因此,深入了解UTF-8与UTF-16的编码算法(尤其是UTF-16的代理对编码算法相当“奇葩”),彻底搞清楚它们究竟是如何编码的,是每一个程序员的必修课。

然而,令人遗憾的是,目前网络上虽然有海量的文章介绍相关内容,却基本上都没有彻底讲明白(基本上都没有能够避免概念混乱、术语混用、理解混淆),而且还有不少错误(包括*上的词条以及知乎上大神的回答都有很明显的错误)。

为此,我准备整理一篇文章,发布在GitChat上,将UTF-8与UTF-16究竟是如何编码的编码算法彻底讲清楚。扫码上面的二维码,可打开相关活动页面。

上一篇:20135320赵瀚青LINUX内核分析第三周学习笔记


下一篇:解决Scrapy抓取中文结果保存为文件时的编码问题