抄书(标准C语言指南)
2.2 字符 在传统的C语言里,字符(character)是指任意一个字节里的内容,是一个有特定含义的比特序列。由于这个比特序列至少需要用一个原子粒度的存储单元(也就是字节)来承载,所以,传统的C语言的"字符"是指单字节字符。 但是,随着C语言的国际化,一个大的问题显现出来:汉语、日语、韩语,甚至拉丁文化圈的文字一个字节不够,需要用多个字节来表示,这就引入了“多字节字符”和“宽字符”的概念。因此,如果从广义上来说,字符是信息的一个单位,文本数据由他们组成,通过他们,文本的内容得以展现和表示,同时他们又是对文本数据进行控制和处理的基本单位。 在这本书中,字符的含义取决于具体的上下文语境,有时指单字节字符,有时指多字节字符或者宽字符。 2.2.1 多字节字符 源字符集和执行字符集实际上都包括一个基本部分,或者说是一个子集,称为基本字符集。除此之外,他们还包括一些扩展字符。 扩展字符基本上都是各个国家和地区所使用的本地字符,因其数量庞大,一个字节无法表示,必须使用多个字节。 一旦决定对不同字符使用不同数量的字节,那么,源字符集和执行字符集中的成员都将需要一个或者多个字节表示。像这样,使用一个以上的字节来表示的字符被称为多字节字符。 典型的多字节字符是采用UTF-8编码方式表示的字符,他说Unicode和ISO/IEC 10646字符集的一种编码方式。 相对于传统的单字节符和宽字符