[英]Convert python byte in string format to byte array in c#
在我的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#中的字節數組。
首先,您想要稍微修改一下字符串以在C#中使用。
var str = "\xe0\xb6\x9c\xe0\xb7\x92\xe0\xb6\xb1\xe0\xb7\x8a\xe0\xb6\xaf\xe0\xb6\xbb";
然后,您可以使用LINQ輕松獲得字節數。
var bytes = str.Select(x => Convert.ToByte(x)).ToArray();
嘗試在Python和C#之間使用字節字符串時可能會發生一種奇怪的情況,就是python有時會為某些字節值輸出直接的ASCII字符,而給您留下像b'\\xe0ello'
這樣的混合字符串。 C#可以識別\\x##
,但是它也會嘗試解析\\x####
,當處理混合了十六進制代碼和ascii的python字節字符串的輸出時,該趨勢會趨於中斷。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.