我的输入字符串由混合了常规字符的unicode转义字符组成。例如:
String input ="\u0000\u0003\u0000\u0013timestamp\u0011clientId\u0015timeToLive\u0017destination\u000fheaders\tbody\u0013messageId\u0001\u0006"
如何将其转换为bytearray或Stream?
预期输出为字节[]
// t i m e s t a m p
{0x00, 0x03, 0x00, 0x13, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x11, ...}
答案 0 :(得分:3)
这似乎有效:
Encoding.UTF8.GetBytes(input);
您可以尝试使用:
Text = BitConverter.ToString(Encoding.UTF8.GetBytes(input));
答案 1 :(得分:0)
看起来你可以简单地将每个字符转换为它的等效字节值。
您没有说如何处理值为>的unicode字符; 255,但假设你没有这些:
input.Select(c => (byte)c).ToArray();
请注意,对于您的特定示例,Encoding.UTF8.GetBytes(input)
将生成完全相同的字节数组。
但是,你并不是说你想要字符串UTF8编码,并且因为你没有显示高于255的unicode代码点,所以很难确切地告诉你想要什么。