[英]c# byte[] → string → byte[] issue
我的另一個奇怪的問題。
我有這個代碼:
byte[] chks = Get64bitData();
string str = Encoding.UTF8.GetString(chks);
byte[] bts = Encoding.UTF8.GetBytes(str);
方法Get64bitData
返回8個字節的數組,然后將數組轉換為字符串。 然后代碼再次將字符串轉換為字節數組,但新數組現在有16個字節!
這是什么類型的地獄,如何避免?
正如您所見,任何隨機字節 [] 都無法安全地轉換為文本。 使用Convert.ToBase64String或BitConverter.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.