注册 登录
编程论坛 C语言论坛

求助,又遇到了中文乱码

追梦人zmrghy 发布于 2022-09-09 01:35, 1439 次点击
求助,又遇到了中文乱码
如果,不理解原因,只是“照猫画虎”修改一下代码。
下次,还会遇到了中文乱码。。。
程序代码:
#include <iostream>

using namespace std;
using namespace System;
using namespace System::IO;


void readfile(String^ filepath)
{
    StreamReader^ sr = File::OpenText(filepath);
     String^ s = "";
     while (s = sr->ReadLine())
          Console::WriteLine(s);
}

int main()
{
    String^ file1 = "c:\\Users\\Administrator\\Desktop\\A.txt";
    String^ file2 = "c:\\Users\\Administrator\\Desktop\\B.txt";

    readfile(file1);
    Console::WriteLine("\n\n");
    readfile(file2);
}


只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录
4 回复
#2
zzz32652022-09-11 11:58
实际上没有严格的代码可以判断数据的实际编码
如果有BOM头会比较好判断
如果没有, 只能各个编码尝试检查
简单的检查可以用 MultiByteToWideChar 使用参数MB_ERR_INVALID_CHARS
复杂的可以用对词语组合, 语义等分析
#3
追梦人zmrghy2022-09-11 18:12
回复 2楼 zzz3265
MultiByteToWideChar
这是个现成的函数吗???

使用哪个库。。。
在哪个命名空间中。。。。
#4
吹水佬2022-09-11 18:23
MultiByteToWideChar是Windows API
#5
追梦人zmrghy2022-09-11 21:47
回复 4楼 吹水佬
#include<windows.h>
1