文本在内存中的编码(1)——乱码探源(4)

摘要:文本在内存中的编码以及 String 类型的本质。

让我们从一个故事开始说起。话说北大是很有哲学传统的,当你准备踏进北大校门时,连门卫都会连问你三个终极哲学问题:

你是谁?你从哪里来?你要到哪里去?

那么这与我们的问题又有何关系呢?我觉得理解内存中的编码的关键在于理解 String 类型,因此我们也来探讨一下 String 的前世今生:String 是谁(什么)?String 从哪里来?String 到哪里去?

当我们能够清晰地回答这三个终极问题时,对文本在内存中的编码也算理解得差不多了。

继续阅读“文本在内存中的编码(1)——乱码探源(4)”

引入编码信息的一些实践——乱码探源(3)

摘要:介绍了两种引入编码信息的实践,变相引入及外部指定。

前面说到,文本文件中没有编码信息,导致了各种混乱,那么,最关键的就是要指定好所用的编码信息。具体地讲,有以下一些途径。

继续阅读“引入编码信息的一些实践——乱码探源(3)”

确定文本文件的编码——乱码探源(2)

摘要:介绍了如何去确定一个文本文件所使用的编码,特别地以记事本保存“联通”为例进行了深入分析。

在上一篇中,探讨了文件名编码以及非文本文件中的文本内容的编码,在这里,将介绍更为重要的文本文件的编码。

继续阅读“确定文本文件的编码——乱码探源(2)”

字符集与编码(八)——ASCII 和 ISO-8859-1

摘要:简单介绍了 ASCII 和 ISO-8859-1 两个常见的字符集(编码)。

在前面其实也谈到了 ASCII 了,但并没有很具体,作为一个完整系列的一部分,还是有必要谈一下,也作为后面讨论的一些基础。

继续阅读“字符集与编码(八)——ASCII 和 ISO-8859-1”

字符集与编码(二)——编号 vs 编码

摘要:编号是字符到最终编码的一个过渡层与抽象层,起着承上启下的作用,它与最终编码在形式上也常常很相似,在 Unicode 中,码点(code point)扮演的正是编号的角色。广义而言,编号其实也是一种编码。

在深入研究字符集编码,简称编码之前,我们先引入一个概念:编号(code),引入它是为了更好地编码(encode)相区分。

继续阅读“字符集与编码(二)——编号 vs 编码”

字符集与编码(一)——charset vs encoding

摘要:charset 与 encoding 的差别在哪?charset=utf-8 与 encoding=utf8 哪种写法更规范?本文将探讨这两者的联系与区别。

许多时候,字符集与编码这两个概念常被混为一谈,但两者是有差别的,作为深入理解的第一步,首先要明确:

继续阅读“字符集与编码(一)——charset vs encoding”