目的:编写一个类似桌面歌词的摸鱼看小说神器
遇到的问题:从磁盘assic 编码(gb2312编码)的中文文件中读取指定数量的文字会出现乱码。
VS工程是多字节编码,有的文字能正常显示,有的不行。那就不是字符集转换的问题,这里不存在转换的必要。
分析gb2312 一个字是由两个BYTE组成,如果指定读取50个BYTE,其中有一个BYTE 不是汉字而是 字符 那么就会导致解码错位。
于是 ,解决办法就是,每次读取N个BYTE, 遍历这N个BYTE,判断是否又奇数个Byte 小于0xA0 (汉字的两个BYTE 最小是0xA0),如果是奇数个,则多读一个BYTE。