我正在尝试使用c#BinaryWriter和BinaryReader类编写和读取二进制文件。 当我在文件中存储一个字符串时,它正确地存储它,但是当我尝试读取它时,它返回一个字符串,该字符串在字符串中的每个替换位置都有'\ 0'字符。
以下是代码:
public void writeBinary(BinaryWriter bw)
{
bw.Write("Hello");
}
public void readBinary(BinaryReader br)
{
BinaryReader br = new BinaryReader(fs);
String s;
s = br.ReadString();
}
这里的值为=“H \ 0e \ 0l \ 0l \ 0o \ 0”。
答案 0 :(得分:4)
您在阅读和撰写文件时使用的是不同的编码。
您在编写文件时使用的是UTF-16,因此每个字符最终都是16位字符代码,即两个字节。
您在读取文件时使用的是UTF-8或某些8位编码,因此每个字节最终都会成为一个字符。
选择一种编码并用于读取和写入文件。