编码和解码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
你的代码似乎太复杂了:-),这里有一个工作:
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,...