1 从字符编码谈起
读写文字是人与动物的最大区别,不同的种族发明了不同的语言文字,对这些文字进行二进制表示是计算机领域必须要解决的问题。文本处理在计算机程序中占有相当大的比例,尤其是在web程序中,几乎大部分程序逻辑都是为了最终输出处理过的文本。目前世界上存在有很多种字符编码标准,各个标准并不完全兼容,甚至完全不同,从而导致了“乱码”这个让很多程序员都胆战心惊的东西。
尽管目前统一的编码规范UNICODE大行其道,被越来越广泛地使用,然而尚未达到完全统治字符编码界的水平。
2 元字符与不可编码字符
2.1 元字符
在标记语言中,都会定义一些被称为“元字符”的特殊字符,这些字符具有特殊的作用,不再具有原来字面上的意义。我们以HTML为例,小于号(<)就是一个最常用的元字符,它表示一个标签的开始,而不再具有“小于号”这个字面意义。
那么想要这些元字符的字面含义该怎么办呢?
解决方法就是:用元字符引导字符序列来表示元字符的字面含义。例如在HTML中元字符<的字面值就是用如下序列表示。
<
2.2 不可编码字符
很多的字符编码标准并不能涵盖所有的字符,例如ASCII编码只包含128个字符,根本不能表示英文之外的其他任何语言文字。这样就会导致一个问题:想要在ASCII编码的文件中记录汉字怎么办?
解决方法就是&#x