解决方法:
string s = "......your mail body here......";
byte[] bs = Convert.FromBase64String(s);
String s2 = System.Text.Encoding.GetEncoding("GB2312").GetString(bs);
如果字符串中含有中文,需要先转换为二进制字符串再进行编码否则报““Base-64字符中的无效字符”的错误。
byte[] outbyte=System.Text.Encoding.GetEncoding("GB2312").GetBytes(s.ToCharArray());
说明:
[C#]
public static byte[] FromBase64String(
string s
);
s 由基 64 数字、空白字符和尾随填充字符组成。从零开始以升序排列的以 64 为基的数字为大写字符“A”到“Z”、小写字符“a”到“z”、数字“0”到“9”以及符号“+”和“/”。
空白字符为 Tab、空格、回车和换行。s 中可以出现任意数目的空白字符,因为所有空白字符都将被忽略。
无值字符“=”用于尾部的空白。s 的末尾可以包含零个、一个或两个填充字符。