0

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

String input ="\u0000\u0003\u0000\u0013timestamp\u0011clientId\u0015timeToLive\u0017destination\u000fheaders\tbody\u0013messageId\u0001\u0006"

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

预期输出为 Byte[]

//                         t     i     m     e     s     t     a     m     p
{0x00, 0x03, 0x00, 0x13, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x11, ...}
4

2 回答 2

3

这似乎有效:

Encoding.UTF8.GetBytes(input);

您可以尝试使用:

Text = BitConverter.ToString(Encoding.UTF8.GetBytes(input));
于 2013-05-13T19:46:05.637 回答
0

看来您可以简单地将每个字符转换为其等效的字节值。

您没有说如何处理值 > 255 的 unicode 字符,但假设您没有这些字符:

input.Select(c => (byte)c).ToArray();

请注意,对于您的具体示例,Encoding.UTF8.GetBytes(input)将产生完全相同的字节数组。

但是,您并不是说要对字符串进行 UTF8 编码,并且由于您没有显示高于 255 的 unicode 代码点,因此很难准确说出您想要什么。

于 2013-05-13T19:43:06.643 回答