using System; using System.Text; namespace Test { class Program { static void Main() { int num = 10; StringBuilder builder = new StringBuilder(); for (int i = 0; i < num; i++) { builder.Append("abcd1234"); } string ss = builder.ToString(); Console.WriteLine(ss.Length);//80 byte[] dataBase64 = Convert.FromBase64String(ss); //如果字符串的长度不是4的倍数,Base64编码会报异常:(Base-64 字符数组或字符串的长度无效) Console.WriteLine(dataBase64.Length); string newSS = Convert.ToBase64String(dataBase64, 0, dataBase64.Length); Console.WriteLine(ss.Equals(newSS)); //60 byte[] dataUTF8 = Encoding.UTF8.GetBytes(ss); Console.WriteLine(dataUTF8.Length);//跟字符串的长度一样:80 newSS = Encoding.UTF8.GetString(dataUTF8, 0, dataUTF8.Length); Console.WriteLine(ss.Equals(newSS)); Console.ReadLine(); /* 80 60 True 80 True */ } } }
总结:
Base64编码 和 UTF-8编码,相互比较后Base64编码后的长度会相对小些。
UTF-8编码后的长度跟原来的字符串的长度一样。