函数目的:
读取指定行数的汉字数据,每行读取不超过一定个数
使用方法:
用fstream中的getline函数来读取每一行('\n'之前的最多为x个字节的数据),数据保存在CString中,然后我用CString中的Insert函数来将每一次读取的结果连接起来,最后输出
遇到问题:
虽然能够成功读取,但是有些汉字变成了乱码,并且不能够从函数里面输出来传到别的函数里面使用,我知道,出现这个问题的原因是汉字是2字节的,但是一个txt文档里面有空格、半角标点符号等是一个字节的,程序如果按一定的字节数读取的话,很容易就会因为读到上述符号而使得读取汉字的时候出现只读到“半个”字的情况,再接下去读取后续文字就会因为偏移了一个字节而读成乱码
求解:
怎样才能够避免读取汉字时因为1字节符号而产生偏移,最后造成乱码的情况发生?
设置本地化
######设置本地化imbue()######你的汉字是什么编码的
gbk就是一个字节<127为ascii,否则为二字节的汉字
unicode是2字节
utf-8是1-3字节不等,看字节前面高位1的个数……
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。