To encode a string
Code:
public string base64Encode(string data)
{
try
{
byte[] encData_byte = new byte[data.Length];
encData_byte = System.Text.Encoding.UTF8.GetBytes(data);
string encodedData = Convert.ToBase64String(encData_byte);
return encodedData;
}
catch(Exception e)
{
throw new Exception("Error in base64Encode" + e.Message);
}
}
and to decode
Code:
public string base64Decode(string data)
{
try
{
System.Text.UTF8Encoding encoder = new System.Text.UTF8Encoding();
System.Text.Decoder utf8Decode = encoder.GetDecoder();
byte[] todecode_byte = Convert.FromBase64String(data);
int charCount = utf8Decode.GetCharCount(todecode_byte, 0, todecode_byte.Length);
char[] decoded_char = new char[charCount];
utf8Decode.GetChars(todecode_byte, 0, todecode_byte.Length, decoded_char, 0);
string result = new String(decoded_char);
return result;
}
catch(Exception e)
{
throw new Exception("Error in base64Decode" + e.Message);
}
}
To encode a string Code: public string base64Encode(string data) { try { byte[] encData_byte
Share
You haven’t said what error you’re getting, but surely your second code should simply be:
UTF8EncodingAdditionally, your exception handling is nasty – the stack trace would already show where the error occurs, but by catching it and rethrowing just
Exceptionyou’re hiding the original exception type. Just remove the try/catch blocks from both your methods. (And rename them to match .NET naming conventions.)Basically, your code can look as simple as this:
Obviously you can split it into separate statements if you want, but it can stil be pretty short: