Convert.ToBase64String(Byte[])和Encoding.UTF8.GetString(Byte[])的區別


Encoding.UTF8.GetString是針對使用utf8編碼得到的字符串對應的byte[]使用,可以還原我們能看懂的字符串
Convert.ToBase64String是對任意byte[]都可使用,得到的是用字符串表示的byte[]信息 內容類似"Jwl9Kh+lPfmSPio//UpvbA=="


Base64有個優點,就是可以用文本格式傳輸,base64絕對不存在任何不可讀的字符,也不存在關鍵字沖突字符,不需要轉義。
缺點:Base64比起它的原始文本增大約30%。


二者都是將 byte[] 轉換成字符串

一個區別在於 Convert.ToBase64String 使用 base 64 數字編碼,所以它生成的全部是ASCII 字符。
而 Encoding.GetString 就是轉換成我們平常所認識的字符串。

 

一些加密方法返回 byte[],此時我們要轉換成字符串用哪個呢?
利用 Encoding.GetString 轉換,可能得到很多方塊或問號,這是由於某些整數序列無法對應於我們現實生活中的文字的原因,只能用方塊或問號來代替。
所以我們一般還是用 Convert.ToBase64String 來進行。

 

那么從另一方面,字符串轉換成 byte[] 用哪個呢?是不是一定要用 FromBase64String 呢?
不是的,我們普通的文字並不是 base 64 編碼的,不能使用 FromBase64String 轉換成 byte[],比如: 
FromBase64String("MrZivChu的博客") 就會出錯,因為“MrZivChu的博客”並不是 base 64 編碼的。

 

對加密方法返回的byte[],用Convert.ToBase64String

對普通的文字操作,用Encoding.UTF8.GetBytes()

不過一個地方用Convert.ToBase64String來操作byte[]獲得string,而另一個地方要用相同的byte[],

最好對應用 Convert.FromBase64String(string);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM