二进制文件是c++写的, 现在用C# 把这个二进制文件的字段读出来,用C# 自带的二进制文件读写方法读出来的数据乱码, 是因为C++ 和 C# 的数据类型所占用的字节长度不一致导致的吗,具体应该怎么读,求大神指教
byte[] filecnt = File.ReadAllBytes("文件名");
string sitecode = "";
for (int i = 0; i < 8; i++)
{
if (filecnt[i] != 0)
sitecode += ((char)filecnt[i]).ToString();
else
break;
}
你先看看上面的代码能不能读到sitecode,如果可以,采纳本回答,帮你接着写下去。
应该和字节长度没关系。
用流全部读取文件试下。用utf-8读取。
string str = File.ReadAllText(path, Encoding.UTF8);
Console.WriteLine("ReadAllText读所有行:\n" + str);