gpt4 book ai didi

c# - 将转义字符串转换为字节数组或流; C#

转载 作者:行者123 更新时间:2023-11-30 14:59:38 31 4
gpt4 key购买 nike

我的输入字符串由 unicode 转义字符和常规字符混合组成。示例:

\u0000\u0003\u0000\u0013timestamp\u0011clientId\u0015timeToLive\u0017destination\u000fheaders\tbody\u0013messageId\u0001\u0006

如何将其转换为字节数组或流?

编辑:UTF+8 编码。澄清输入字符串:

Char 01: U+0000
Char 02: U+0003
Char 03: U+0000
Char 04: U+0013
Char 05: t
Char 06: i
Char 07: m
Char 08: e
Char 09: s
Char 10: t
Char 11: a
Char 12: m
Char 13: p
Char 14: U+0011
...
...

最佳答案

好的,所以您有一个任意字符串(它包含不可打印字符的事实无关紧要)并且您想要使用 UTF-8 将其转换为字节数组。这很容易:)

byte[] bytes = Encoding.UTF8.GetBytes(text);

或者要写入流,您通常会将其包装在 StreamWriter 中:

// Note that due to the using statement, this will close the stream at the end
// of the block
using (var writer = new StreamWriter(stream))
{
writer.Write(text);
}

(UTF-8 是 StreamWriter 的默认编码,但您当然可以明确指定它。)

我假设您确实有充分的理由以这种形式使用“文本”。我不能说我曾经找到过 U+0003(文本结束)的用途。如果像 I4V 所建议的那样,该数据最初是二进制流,您应该首先避免将其作为文本处理。将二进制数据与文本数据分开 - 当您混合使用它们时,导致问题。 (例如,如果您的字符串中的第四个字符是 U+00FF,当编码为 UTF-8 时,它最终会变成两个字节,这可能不是您想要的。)

关于c# - 将转义字符串转换为字节数组或流; C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16528620/

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