前言

(图片来自网络)

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

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

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

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

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

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

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

(图片来自网络)

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

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

二、字符编码的由来

三、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常见问题解答

十九、总结

刨根究底字符编码之零——前言相关推荐

  1. 【转】刨根究底字符编码之零——前言

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

  2. 【转】刨根究底字符编码之十一——UTF-8编码方式与字节序标记BOM

    一.UTF-8编码方式 1. 接下来将分别介绍Unicode字符集的三种编码方式:UTF-8.UTF-16.UTF-32.这里先介绍应用最为广泛的UTF-8. 为满足基于ASCII.面向字节的字符处理 ...

  3. 【转】刨根究底字符编码【2.0版】(1):开篇

    首先跟大家分享一个有趣的亲身经历.有一次,在网上我看到有程序员发了一个帖子,帖子题目乍一看让人感到惊愕,但细一想又让我会心一笑. 这个帖子的题目大致上是这样的:字符编码是不是让程序员最感到恶心的问题? ...

  4. 【转】刨根究底字符编码之十六——Windows记事本的诡异怪事:微软为什么跟联通有仇?

    1. 当用一个软件(比如Windows记事本或Notepad++)打开一个文本文件时,它要做的第一件事是确定这个文本文件究竟是使用哪种编码方式保存的,以便于该软件对其正确解码,否则将显示为乱码. 一般 ...

  5. 【转】刨根究底字符编码之十三——UTF-16编码方式

    1. UTF-16编码方式源于UCS-2(Universal Character Set coded in 2 octets.2-byte Universal Character Set).而UCS- ...

  6. 刨根究底字符编码之六——简体汉字编码中区位码、国标码、内码、外码、字形码的区别及关系

    简体汉字编码中区位码.国标码.内码.外码.字形码的区别及关系 GB2312.GBK.GB18030等GB类汉字编码方案的具体实现方式是怎样的?区位码是什么?国标码是什么?内码.外码.字形码又是什么意思 ...

  7. 【转】刨根究底字符编码之二——关键术语解释(下)

    关键术语解释(下) 如前所述,现代字符编码模型共分为5层,下面分层进行简要介绍. 一.第1层 抽象字符表ACR (Abstract Character Repertoire抽象字符清单):明确字符的范 ...

  8. 【转】刨根究底字符编码【2.0版】(3):字符编码的由来、演变与ASCII码

    为什么需要字符编码 1. 计算机一开始发明出来时是用来解决数字计算问题的,后来人们发现,计算机还可以做更多的事,例如文本处理. 但计算机其实挺"笨"的,它只"认识&quo ...

  9. 【转】刨根究底字符编码【2.0版】(2):关键术语解释

    上一篇中讲道,字符编码所涉及的面非常广,向下的话,涉及到计算机的底层技术,甚至是硬件实现. 因此,这里就让我们从字符编码涉及到的最基本的术语讲起.大部分术语你可能都已经有了解了,但我们现在从字符编码的 ...

  10. 【转】刨根究底字符编码之十五——UTF-32编码方式

    1. UTF-32在UTF目前常用的三种编码方式(UTF-8.UTF-16.UTF-32)中,是最为简单的一种编码方式.UTF-32编码方式不使用任何编码算法将Unicode字符码点值(即编号字符集C ...

最新文章

  1. ❤️手撕这十道HiveSQL题还不能吊打面试官,却能保你不被吊打❤️【推荐收藏】
  2. 微信的Bug差点让我被老板炒鱿鱼!
  3. html增加删除线,HTML如何添加删除线?
  4. 智能安全实验室-杀马(Defendio) 2.5.0.426 :解决因日期超过28日(29/30/31)出现的“无效属性”导致杀马无法启动的问题;...
  5. 电池技术多年没有较大发展,成为移动设备最大制约
  6. 揽货最短路径解决方案算法 - C# 蚁群优化算法实现
  7. 乌班图安装pycharm
  8. 禁止普通账户将主机加入域控
  9. 信息系统项目管理师---运筹学计算
  10. linux运维、架构之路-Kubernetes本地镜像仓库+dashboard部署
  11. 2037. 使每位学生都有座位的最少移动次数
  12. Bailian4145 放弃考试 POJ2976 ZOJ3068 Dropping tests【二分法+01分数规划】
  13. 炫酷 雨滴桌面设置工具
  14. 汽车软件通信中间件iceoryx和它的零拷贝技术
  15. 【渝粤题库】陕西师范大学201041德育论 作业(专升本)
  16. Win7系统无法被远程桌面连接如何解决
  17. excel条件格式设置截止日期颜色
  18. scikit-learn:4.3. Preprocessing data(standardi/normali/binari..zation、encoding、missing value)
  19. 天融信数通小百科:无线AP的Soul mate—POE交换机
  20. 游戏服务器没有响应怎么回事,求助!!!为什么我进不了游戏!!!

热门文章

  1. HDLBits 答案之Exams/ece241 2014 q7b
  2. linux替换空格、
  3. Android-DRM详解
  4. 方维众筹网站源码V1.71 PC+WAP+商业版
  5. VTM3.0代码阅读:CU、PU、TU
  6. qq邮箱对方服务器退回,为什么我用QQ邮箱发邮件被退回来了?他说地 – 手机爱问...
  7. MT管理系去弹窗【失败】
  8. 用混淆矩阵计算kappa系数
  9. 计算机网络白龙飞,成电等你来 | 你的辅导员已上线,男神辅导员闪亮登场(一)...
  10. 《237 Gbit ps unrolled hardware polar decoder》237 Gbit / s展开的硬件极化解码器