编码和解码c# asp.net

本文关键字:asp net 解码 编码 | 更新日期: 2023-09-27 18:06:31

我正在使用编码和解码:

为编码:

private string EncodeServerName(string ServerName)
    {
      byte[] NameEncodein = new byte[ServerName.Length];
      NameEncodein = System.Text.Encoding.UTF8.GetBytes(ServerName);
      string EcodedName = Convert.ToBase64String(NameEncodein);
      return EcodedName;
    }

和解码:

     public string DecoAndGetServerName(string Servername)
     {
         System.Text.UTF8Encoding encoder = new System.Text.UTF8Encoding();
         System.Text.Decoder strDecoder = encoder.GetDecoder();
         byte[] to_DecodeByte = Convert.FromBase64String(Servername);
         int charCount = strDecoder.GetCharCount(to_DecodeByte, 0, to_DecodeByte.Length);
         char[] decoded_char = new char[charCount];
         strDecoder.GetChars(to_DecodeByte, 0, to_DecodeByte.Length, decoded_char,0);
         string Name = new string(decoded_char);
         return Name;
     }

我正在发送ServerName: DEV-SQL1'SQL2008

编码为:REVWLVNRTDFcU1FMMjAwOA==

再次我想解码,但得到异常:在行:

byte[] to_DecodeByte = Convert.FromBase64String(Servername);

的例外是:

'输入不是有效的Base-64字符串,因为它包含一个非Base-64字符,

大于两个填充字符,或者填充字符之间有一个非空白字符。

如何解决这个问题。

Please Help Me

编码和解码c# asp.net

你的代码似乎太复杂了:-),这里有一个工作:

public static string EncodeServerName(string serverName)
{
    return Convert.ToBase64String(Encoding.UTF8.GetBytes(serverName));
}
public static string DecodeServerName(string encodedServername)
{
    return Encoding.UTF8.GetString(Convert.FromBase64String(encodedServername));
}

同样的代码为我工作,你写在DecoAndGetServerName()

问题是,你需要将ENCODED STRING传递给DecoAndGetServerName()函数,

可以编码为:

string Servername=Convert.ToBase64String(Encoding.UTF8.GetBytes("serverName"));

这就是为什么你会得到错误The input is not a valid Base-64 string as it contains a non-base 64 character,...