static string EncodeBase64Value(string value)
{
bool quoted = value.Length > 1 && value [0] == '"' && value [value.Length - 1] == '"';
if (quoted)
{
value = value.Substring(1, value.Length - 2);
}
for (int i = 0; i < value.Length; ++i)
{
var ch = value[i];
if (ch > 127)
{
var encoding = Encoding.UTF8;
return(string.Format("\"=?{0}?B?{1}?=\"",
encoding.WebName, Convert.ToBase64String(encoding.GetBytes(value))));
}
}
if (quoted || !Lexer.IsValidToken(value))
{
return("\"" + value + "\"");
}
return(value);
}