我有一个问题,当将.NET字符串编码为base64时应该使用哪种Unicode编码?我知道在Windows上,字符串是UTF-16编码的,那么我的编码方式是否正确?
public static String ToBase64String(this String source) {
return Convert.ToBase64String(Encoding.Unicode.GetBytes(source));
}
这是解决方案,我已经将随机字符串转换为Base64编码。您可以指定任何不超过10的大小。
//This function will return a random string from the given numeric characters
public string RandomString(int size)
{
const string legalCharacters = "1234567890";
Random random = new Random();
StringBuilder builder = new StringBuilder();
char ch = '\0';
for (int i = 0; i <= size - 1; i++) {
ch = legalCharacters(random.Next(0, legalCharacters.Length));
builder.Append(ch);
}
return builder.ToString();
}
public const string BASE64 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/";
public string DecToBase64(long lVal)
{
string sVal = null;
sVal = "";
while (lVal >= 64) {
sVal = sVal + DecToBase64(lVal / 64);
lVal = lVal - 64 * (lVal / 64);
}
sVal = sVal + Strings.Mid(BASE64, Convert.ToInt32(lVal) + 1, 1);
return sVal;
}
//here is how we can have result in variable:
string Base64 = "";
Base64 = DecToBase64(RandomString(10)); //this will produce a combination up-to length of 10
MSDN证实,UnicodeEncoding
类表示Unicode字符的UTF-16
编码。