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