日期:2014-05-17  浏览次数:21028 次

请教:记事本保存同样文本后大小为什么不同
系统:XP

实验1:
  在记事本中输入一个汉字:汉
  保存为unicode格式,通过右键属性查看,大小为4个字节
实验2:
  在记事本中输入一个汉字:汉
  保存为utf-8格式,通过右键属性查看,大小为6个字节

问题:
  1、unicode为双字节编码,本身加上控制字符 汉+LF(换行)+CR(回车)=6字节, 怎么等于4个字节?
  2、utf-8编码中,“汉”字占有3个字节,控制字符各占1个字节 汉+LF(换行)+CR(回车)=5字节, 怎么等于6个字节?

------解决方案--------------------
如果有回车换行符,那么回车换行符也会记入文件的大小。具体回车换行符大小由文件类型决定。

如果文件类型是UNIX + UTF16,回车换行符是\n,占用两个字节,编码是 “0A 00 ”
如果文件类型是DOS + UTF16,回车换行符是\r\n,占用四个字节,编码是 “0D 00 0A 00 ”

如果文件类型是UNIX + UTF8,回车换行符是\n,占用一个字节,编码是 “0A ”
如果文件类型是DOS + UTF8,回车换行符是\r\n,占用两个字节,编码是 “0D 0A ”