我目前正尝试在将数据存储到我的数据库之前对其进行编码。
try
{
byte[] byteEncString = new byte[_strToConvert.Length];
byteEncString = System.Text.Encoding.UTF8.GetBytes(_strToConvert);
string strEncoded = Convert.ToBase64String(byteEncString);
return strEncoded;
}
有谁知道一个15个字符的字符串经过utf8和base64string编码后会有多长?另外,有上限吗?我在 sql server 上的字段只有 50,我想将它限制在该范围内。想法?
最佳答案
好吧,一方面,创建一个字节数组然后忽略它是没有意义的 - 所以你的代码会更简单:
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。
关于c# - UTF8编码为base64string并存入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5234810/