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

时间:2013-05-13 19:41:29

标签: c# unicode-escapes

我的输入字符串由混合了常规字符的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, ...}

2 个答案:

答案 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代码点,所以很难确切地告诉你想要什么。