1.定義
百度百科:Base64是網絡上最常見的用于傳輸8Bit字節碼的編碼方式之一,Base64就是一種基于64個可打印字符來表示二進制數據的方法。Base64編碼是從二進制到字符的過程,可用于在HTTP環境下傳遞較長的標識信息。采用Base64編碼具有不可讀性,
需要解碼后才能閱讀。
專業定義:①.Base64是一種用64個字符來表示任意二進制數據的方法;②.Base64是一種任意二進制到文本字符串的編碼方法,常用于在URL、Cookie、網頁中傳輸少量二進制數據。
2.用法
(1)string ---> byte[]
string str="中國?123?";
byte[] buffer=Convert.FromBase64String(str);
byte[] buffer=System.Text.Encoding.Default.GetBytes(str); //默認編碼方式,
byte[] buffer=System.Text.Encoding.UTF8.GetBytes(str);
=System.Text.Encoding.Unicodes.GetBytes(str);
=System.Text.Encoding.GetEncoding("gb2312").GetBytes(str); // 指定編碼方式 gb2312, 漢字占兩個字節,英文字母占一個字節,所以byte數組長度是12
string s= System.Text.Encoding.Default.GetString(new byte(){new byte[]{ buffer[0], buffer[1]}}); //解碼以后是 “中”
(2)byte[] ----> string
string s= System.Text.Encoding.Default.GetString(buffer);
string s=Convert.ToBase64String(buffer);
(3)string ---> MemoryStream
MemoryStream ms= new MemoryStream(System.Text.Encoding.Default.GetBytes(str));
MemoryStream ms=new MemoryStream(Convert.From64BaseString(str));
(4)MemoryStream ---> string
string s=Convert.ToBase64String(ms.ToArray());
string s=System.Text.Encoding.GetString(ms.ToArray());
(5)byte[] ---->base64轉換實例
//在C#中
//圖片到byte[]再到base64string的轉換:
Bitmap bmp = new Bitmap(filepath);
MemoryStream ms = new MemoryStream();
bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
byte[] arr = new byte[ms.Length];
ms.Position = 0;
ms.Read(arr, 0, (int)ms.Length);
ms.Close();
string pic = Convert.ToBase64String(arr);
//base64string到byte[]再到圖片的轉換:
byte[] imageBytes = Convert.FromBase64String(pic);
//讀入MemoryStream對象
MemoryStream memoryStream = new MemoryStream(imageBytes, 0, imageBytes.Length);
memoryStream.Write(imageBytes, 0, imageBytes.Length);
//轉成圖片
Image image = Image.FromStream(memoryStream);
//現在的數據庫開發中:圖片的存放方式一般有CLOB:存放base64string BLOB:存放byte[]
// 一般推薦使用byte[]。因為圖片可以直接轉換為byte[]存放到數據庫中若使用base64string 還需要從byte[]轉換成base64string 。更浪費性能。
參考源:http://www.rzrgm.cn/xskblog/p/6179689.html
浙公網安備 33010602011771號