gpt4 book ai didi

c# - c#中的BinaryReader在字符串的所有字符之间读取 '\0'

转载 作者:行者123 更新时间:2023-11-30 20:51:19 24 4
gpt4 key购买 nike

我正在尝试使用 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();
}

此处 s 的取值为 = "H\0e\0l\0l\0o\0"。

最佳答案

您在读写文件时使用了不同的编码。

您在写入文件时使用的是 UTF-16,因此每个字符最终都是一个 16 位字符代码,即两个字节。

您在读取文件时使用的是 UTF-8 或某些 8 位编码,因此每个字节最终将作为一个字符。

选择一种编码并用于读取和写入文件。

关于c# - c#中的BinaryReader在字符串的所有字符之间读取 '\0',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21806197/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com