簡體   English   中英

將字符串格式的python字節轉換為c#中的字節數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM