簡體   English   中英

c# byte[] → string → byte[] issue

[英]c# byte[] → string → byte[] issue

我的另一個奇怪的問題。

我有這個代碼:

byte[] chks = Get64bitData();
string str = Encoding.UTF8.GetString(chks);
byte[] bts = Encoding.UTF8.GetBytes(str); 

方法Get64bitData返回8個字節的數組,然后將數組轉換為字符串。 然后代碼再次將字符串轉換為字節數組,但新數組現在有16個字節!

這是什么類型的地獄,如何避免?

正如您所見,任何隨機字節 [] 都無法安全地轉換為文本。 使用Convert.ToBase64StringBitConverter.ToString將字節數組轉換為字符串。

byte[] chks = Get64bitData();
string str = Convert.ToBase64String(chks);
byte[] bts = Convert.FromBase64String(str);

或在System.Runtime.Remoting.Metadata.W3cXsd2001 中使用SoapHexBinary

byte[] chks = Get64bitData();
string str = new SoapHexBinary(chks).ToString();
byte[] bts = SoapHexBinary.Parse(str).Value;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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