16,551
社区成员
发帖
与我相关
我的任务
分享
CString cstrFileSrc = _T("E:\\work\\App512\\Debug\\config\\文本1.txt");
CString cstrFileLine;
file.Open(cstrFileSrc, CFile::modeRead);
file.ReadString(cstrFileLine);
以上是代码的部分片段
txt文本内内容是 “今天天气真好啊”
但读取出来的却是一堆乱码:
![]()
请问这个要怎么解决呢?
感谢各位,问题已经解决了,只需要在编译器的设置-属性页-字符串,把选项改为“使用多字节字符集”,问题就会解决
原因都知道,就是没有人去解决!
文本文件用 CStdioFile读,该类对文本文件有特别支持,另外,CString默认是UNICODE编码,如果你是文本文件不是UTF8编码,比如ANSI,显示成什么样子全凭运气了
真不建议采用CFile类读取文本字符串的函数,尽量采用二进制读取,然后在程序中转换为你需要的内容
对电脑而言没有乱码,只有二进制字节;对人脑才有乱码。啊 GBK:0xB0 0xA1,Unicode-16 LE:0x4A 0x55,Unicode-16 BE:0x55 0x4A,UTF-8:0xE5 0x95 0x8A
基本是文本编码问题