gpt4 book ai didi

.net - 从 System.Text.Encoding.Unicode.GetString 获取以 null 结尾的字符串

转载 作者:行者123 更新时间:2023-12-02 20:10:31 25 4
gpt4 key购买 nike

我有一个从外部实体接收的字节数组。它是固定大小的。这些字节包含一个 unicode 字符串,用 0 值填充缓冲区的其余部分:

所以字节可能是:

H \0 E \0 L \0 L \0 \0 \0 \0 \0 \0 ... etc 

我正在获取该缓冲区并将其转换为字符串,如下所示:

byte[] buffer = new byte[buffSize];
m_dataStream.Read(buffer, 0, buffSize);
String cmd = System.Text.Encoding.Unicode.GetString(buffer);

我返回的是一个如下所示的字符串:

"HELLO\0\0\0\0\0\0\0\0..."

如何告诉 GetString 在第一个 Unicode null 处终止字符串(即我只返回“HELLO”)?

感谢您的任何意见。

最佳答案

如果你确定其余部分都是\0,那么这会起作用:

cmd = cmd.TrimEnd('\0');

否则,如果您只想获取第一个 null 之前的所有内容:

int index = cmd.IndexOf('\0');
if (index >= 0)
cmd = cmd.Remove(index);

请注意,Unicode.GetString 将处理双\0。您应该只查找单个\0。

关于.net - 从 System.Text.Encoding.Unicode.GetString 获取以 null 结尾的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/864246/

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