前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >刨根究底字符编码之零——前言

刨根究底字符编码之零——前言

作者头像
笨笨阿林
发布2019-01-18 10:50:28
4810
发布2019-01-18 10:50:28
举报

 前言

(图片来自网络)

一、

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

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

本人正是在经受了字符编码所带来的种种令人崩溃的痛苦之后,才在痛定思痛之余,最终痛下决心,誓要将它刨根究底。

二、

字符编码的基础性、重要性,主要体现在它涉及面广。向下涉及到计算机的底层技术,甚至是硬件实现;向上几乎跟所有的操作系统、编程语言、应用程序都密切相关。

因此,要想真正搞明白字符编码问题,必须得从计算机的基本概念——位、字节、字等等开始,再结合不同的系统环境与编程环境,进行具体分析。

三、

类似于字符编码这样基础、重要、应用广泛而又特别容易让人困惑的主题还有字节序(即大小端表示)、正则表达式以及浮点数实现、日期时间处理等等。其中,字节序、正则表达式跟字符编码的关系又密切相关,尤其是字节序,直接影响字符编码的字节序列。而由于正则表达式主要用于在字符串中查找、提取字符或子字符串,要想真正理解正则表达式,也离不开对字符编码的深入理解。

基于此,本人准备将自己对字符编码(包括字节序)与正则表达式进行刨根究底后的一些心得体会写成两个系列文章,一方面整理一下自己的思路以备忘,另一方面也真心希望能够起到抛砖引玉的作用。

(图片来自网络)

四、

下面是字符编码系列文章将会涉及到的内容:

一)关键术语解释:位、字节、字与字长、字符集、编码、解码、字符编码、现代字符编码模型

二)字符编码的由来

三)ASCII字符编码方案

四)扩展ASCII字符编码方案EASCII(Extended ASCII)以及ISO/IEC 8859字符编码方案

五)汉字编码方案:GB2312、GBK、GB18030、GB13000、全角与半角、CJK中日韩统一表意文字

六)汉字编码中区位码、国标码(交换码)、内码(机内码)、外码(输入码)、字形码(输出码)的区别及关系

七)ANSI编码

八)代码页(Code Page)、微软与ANSI代码页

九)Unicode编码方案的面世

十)Unicode字符集概述

十一)字符编码系统(字符编码模型)的变化、字节序

十二)Unicode字符集的编码方式:码点、码元、UTF-8、UTF-16、UTF-32

十三)同样存在多字节编码,为什么说UTF-8没有字节序的问题,而UTF-16、UTF-32却有?

十四)微软为什么跟联通有仇——Windows记事本的字符编码方式

十五)Windows记事本的四种编码方式(ANSI、Unicode、Unicode big endian、UTF-8)有何区别?

十六)深入剖析奇葩的Python字符编码

十七)Vim中的字符编码问题

十八)Unicode常见问题解答

十九)总结

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-05-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  •  前言
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档