C#中的实现
编码:
byte[]
bytes = Encoding.Default.GetBytes("要转换的字符"); //gb2312 如需utf-8 Encoding.utf-8.GetBytes();
string str
= Convert.ToBase64String(bytes);
解码:
byte[] outputb=
Convert.FromBase64String(str);
string orgStr= Encoding.Default.GetString(outputb);
C#图片的Base64编码和解码
图片的Base64编码:
System.IO.MemoryStream m=
new System.IO.MemoryStream();
System.Drawing.Bitmap bp =new System.Drawing.Bitmap(@“c:\demo.GIF”);
bp.Save(m, System.Drawing.Imaging.ImageFormat.Gif);
byte[]b= m.GetBuffer();
string base64string=Convert.ToBase64String(b);
Base64字符串解码:
byte[] bt=
Convert.FromBase64String(base64string);
System.IO.MemoryStream stream =new System.IO.MemoryStream(bt);
Bitmap bitmap =new Bitmap(stream);
pictureBox1.Image = bitmap;
通用方式
/// <summary>
/// 对任意类型的文件进行base64加码
/// </summary>
/// <param name="filePath">文件的路径和文件名 </param>
/// <returns>对文件进行base64编码后的字符串 </returns>
public static string FileToString(string filePath)
{
if (!string.IsNullOrEmpty(filePath) && File.Exists(filePath))
{
System.IO.FileStream fs = System.IO.File.OpenRead(filePath);
System.IO.BinaryReader br = new System.IO.BinaryReader(fs);
string base64String = Convert.ToBase64String(br.ReadBytes((int)fs.Length));
br.Close();
fs.Close();
return base64String;
}
else
{
return "";
}
}
/// <summary>
/// 把经过base64编码的字符串保存为文件
/// </summary>
/// <param name="base64String">经base64加码后的字符串 </param>
/// <param name="fileName">保存文件的路径和文件名 </param>
/// <returns>保存文件是否成功 </returns>
public static bool StringToFile(string base64String, string fileName)
{
//string path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase) + @"/beapp/" + fileName;
System.IO.FileStream fs = new System.IO.FileStream(fileName, System.IO.FileMode.Create);
System.IO.BinaryWriter bw = new System.IO.BinaryWriter(fs);
if (!string.IsNullOrEmpty(base64String) && File.Exists(fileName))
{
bw.Write(Convert.FromBase64String(base64String));
}
bw.Close();
fs.Close();
return true;
}