C# .NET 有没有Base64类?

C# .NET 有没有Base64类? 有类似于如下编码URL规则的?
clipboard.png

阅读 5.6k
1 个回答

Update At 2017/7/27:
更新了答案,完整的Base64编码解码的8个函数如下,代码引用于我自己写的MyCSharp函数库:
https://github.com/MoonLord-L...


    /// <summary>
    /// Base64编码(编码结果的字符串中包含字母A-Z,a-z,数字0-9,符号+/=)
    /// </summary>
    /// <param name="Source">要编码的字符串</param>
    /// <returns>编码后的结果字符串</returns>
    public static string Base64_Encode(string Source)
    {
        return Convert.ToBase64String(Encoding.UTF8.GetBytes(Source));
    }        
    /// <summary>
    /// Base64编码(编码结果的字符串中包含字母A-Z,a-z,数字0-9,符号+/=)
    /// </summary>
    /// <param name="Source">要编码的字符串</param>
    /// <param name="Encoding">使用特定的字符编码(默认UTF-8)</param>
    /// <returns>编码后的结果字符串</returns>
    public static string Base64_Encode(string Source, Encoding Encoding)
    {
        return Convert.ToBase64String(Encoding.GetBytes(Source));
    }

    /// <summary>
    /// Base64解码(要解码的字符串可以包含字母A-Z,a-z,数字0-9,符号+/=)
    /// </summary>
    /// <param name="Source">要解码的字符串</param>
    /// <returns>解码后的结果字符串</returns>
    public static string Base64_Decode(string Source)
    {
        return Encoding.UTF8.GetString(Convert.FromBase64String(Source));
    }
    /// <summary>
    /// Base64解码(要解码的字符串可以包含字母A-Z,a-z,数字0-9,符号+/=)
    /// </summary>
    /// <param name="Source">要解码的字符串</param>
    /// <param name="Encoding">使用特定的字符编码(默认UTF-8)</param>
    /// <returns>解码后的结果字符串</returns>
    public static string Base64_Decode(string Source, Encoding Encoding)
    {
        return Encoding.GetString(Convert.FromBase64String(Source));
    }
    /// <summary>
    /// Base64编码(用于URL的改进Base64编码,编码结果的字符串中包含字母A-Z,a-z,数字0-9,符号-_=)
    /// </summary>
    /// <param name="Source">要编码的字符串</param>
    /// <returns>编码后的结果字符串</returns>
    public static string Base64_URL_Encode(string Source)
    {
        return Convert.ToBase64String(Encoding.UTF8.GetBytes(Source)).Replace("+", "-").Replace("/", "_");
    }
    /// <summary>
    /// Base64编码(用于URL的改进Base64编码,编码结果的字符串中包含字母A-Z,a-z,数字0-9,符号-_=)
    /// </summary>
    /// <param name="Source">要编码的字符串</param>
    /// <param name="Encoding">使用特定的字符编码(默认UTF-8)</param>
    /// <returns>编码后的结果字符串</returns>
    public static string Base64_URL_Encode(string Source, Encoding Encoding)
    {
        return Convert.ToBase64String(Encoding.GetBytes(Source)).Replace("+", "-").Replace("/", "_");
    }

    /// <summary>
    /// Base64解码(用于URL的改进Base64解码,要解码的字符串可以包含字母A-Z,a-z,数字0-9,符号-_=)
    /// </summary>
    /// <param name="Source">要解码的字符串</param>
    /// <returns>解码后的结果字符串</returns>
    public static string Base64_URL_Decode(string Source)
    {
        return Encoding.UTF8.GetString(Convert.FromBase64String(Source.Replace("-", "+").Replace("_", "/")));
    }
    /// <summary>
    /// Base64解码(用于URL的改进Base64解码,要解码的字符串可以包含字母A-Z,a-z,数字0-9,符号-_=)
    /// </summary>
    /// <param name="Source">要解码的字符串</param>
    /// <param name="Encoding">使用特定的字符编码(默认UTF-8)</param>
    /// <returns>解码后的结果字符串</returns>
    public static string Base64_URL_Decode(string Source, Encoding Encoding)
    {
        return Encoding.GetString(Convert.FromBase64String(Source.Replace("-", "+").Replace("_", "/")));
    }
    

最后再来安利一发,公共静态函数库,超好用:https://github.com/MoonLord-L...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进