比如字符编码:D7 D6 B7 FB BA CD B1 E0 C2 EB
记事本从文件中读到的内容
记事本是用来打开文本文件的,所以它会调用Windows的文本显示函数将读到的数据作为文本显示
Windows首先将文本数据转换到它内部使用的编码格式:Unicode,然后按照文本的Unicode去字体文件中查找字体图像,最后将图像显示到窗口上
文字的显示应该是这样
步骤1:文字首先以某种编码保存在文件中。
步骤2:Windows将文件中的文字编码映射到Unicode。
步骤3:Windows按照Unicode在字体文件中查找字体图像,画到窗口上。
所谓编码就是用数字表示字符
Unicode也是一种文字编码,它的特殊性在于它是由国际组织设计,可以容纳全世界所有语言文字
如果上述3个步骤中任何一步发生了错误,文字就不能被正确显示
错误1:如果弄错了编码,例如将Big5编码的文字当作GBK编码,就会出现乱码
错误2:如果从特定编码到Unicode的映射发生错误,例如文本数据中出现该编码方案未定义的字符,Windows就会使用缺省字符,通常是?
错误3:如果当前字体不支持要显示的字符,Windows就会显示字体文件中的缺省图像:空白或方格
代码页和字符集
Windows的代码页
代码页(Code Page)是个古老的专业术语,据说是IBM公司首先使用的。代码页和字符集的含义基本相同,代码页规定了适用于特定地区的字符集合,和这些字符的编码。
可以将代码页理解为字符和字节数据的映射表。
Windows为自己支持的代码页都编了一个号码。例如代码页936就是简体中文 GBK,代码页950就是繁体中文 Big5。
代码页的概念比较简单,就是一个字符编码方案。但要说清楚Windows的ANSI代码页,就要从Windows的区域(Locale)说起了。
区域和ANSI代码页
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余3页未读,立即下载