我目前正在尝试对数据进行编码,然后再将数据存储到我的数据库中。
try
{
byte[] byteEncString = new byte[_strToConvert.Length];
byteEncString = System.Text.Encoding.UTF8.GetBytes(_strToConvert);
string strEncoded = Convert.ToBase64String(byteEncString);
return strEncoded;
}
有没有人知道在通过utf8和base64string编码后15个字符的字符串有多长?还有,最大值?我在sql server上的字段只有50,我想在这个范围内限制它。想法?
答案 0 :(得分:5)
嗯,首先,创建一个字节数组然后忽略它是没有意义的 - 所以你的代码会更简单:
byte[] byteEncString = Encoding.UTF8.GetBytes(_strToConvert);
return Convert.ToBase64String(byteEncString);
当UTF-8编码 1 时,.NET char
最终可以为3个字节,因此最多可达45个字节。但是,base64将3个字节转换为4个字符,因此最多可以得到60个字符的最大base64编码字符串。
1 这是因为不在基本多语言平面中的任何字符都表示为代理项对。该对最终将为4个字节,但已经占用了2个输入字符,因此在这种情况下,平均“每char
个字节数”只有2个。