将字符串格式的python字节转换为c#中的字节数组

时间:2018-10-25 22:57:09

标签: c# python byte

在我的python代码中,我有一个字节代码值,每当打印该字节代码时,它都会给出类似的内容,

b'\xe0\xb6\x9c\xe0\xb7\x92\xe0\xb6\xb1\xe0\xb7\x8a\xe0\xb6\xaf\xe0\xb6\xbb'

现在,该值以c#的字符串格式表示,即

string byteString = "b'\xe0\xb6\x9c\xe0\xb7\x92\xe0\xb6\xb1\xe0\xb7\x8a\xe0\xb6\xaf\xe0\xb6\xbb'";

所以问题是我该如何在C#中将该byteString转换为字节数组

但是,我的实际问题是我在python中有一个不是英语的字符串值,当我运行python代码时,它将打印字符串(非英语,可以正常工作)。 但是,每当从流程类在c#中运行python代码时,它都能很好地适用于英语,并且我可以获得值。但不适用于非英文字符,它是一个空值。因此,在python中,如果我以字节码打印该非英语值,则可以在c#中获取该值。问题是如何将字节码中的内容转换为c#中的字节数组。

1 个答案:

答案 0 :(得分:0)

首先,您要对字符串进行一些修改以用于C#。

start_height

然后,您可以使用LINQ轻松获得字节数。

var str = "\xe0\xb6\x9c\xe0\xb7\x92\xe0\xb6\xb1\xe0\xb7\x8a\xe0\xb6\xaf\xe0\xb6\xbb";

尝试在Python和C#之间使用字节字符串会出现一个奇怪的情况,就是python有时会为某些字节值输出直接的ASCII字符,而给您留下像var bytes = str.Select(x => Convert.ToByte(x)).ToArray(); 这样的混合字符串。 C#可以识别b'\xe0ello',但是它也会尝试解析\x##,当处理混合了十六进制代码和ascii的python字节字符串的输出时,它会趋于中断。