【问题标题】:UTF8 encoding to base64string and storing to databaseUTF8 编码为 base64string 并存储到数据库
【发布时间】:2011-07-11 05:25:39
【问题描述】:

我目前正在尝试在将数据存储到我的数据库之前对其进行编码。

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,我想将其限制在该范围内。想法?

【问题讨论】:

    标签: c# sql-server utf-8 encode


    【解决方案1】:

    好吧,一方面,创建一个字节数组然后忽略它是没有意义的 - 所以你的代码会更简单:

    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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-27
      • 1970-01-01
      • 2020-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多