将转义的unicode字符串转换为bytearray

本文关键字:转换 bytearray 字符串 unicode 转义 | 更新日期: 2023-09-27 18:13:17

我的输入字符串由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, ...}

将转义的unicode字符串转换为bytearray

这似乎可以工作:

Encoding.UTF8.GetBytes(input);

你可以试试:

Text = BitConverter.ToString(Encoding.UTF8.GetBytes(input));

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

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

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

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

但是,您并没有说要对字符串进行UTF8编码,而且由于没有显示255以上的unicode码位,因此很难确切地说出您想要的是什么。