Base64编码字符串时数据量明显变大

那就是当把byte[]通过Convert.ToBase64String转换成Base64编码字符串时数据量明显变大

Base64编码的思想是是采用64个基本的ASCII码字符对数据进行重新编码。它将需要编码的数据拆分成字节数组。以3个字节为一组。按顺序排列24位数据,再把这24位数据分成4组,即每组6位。再在每组的的最高位前补两个0凑足一个字节。这样就把一个3字节为一组的数据重新编码成了4个字节。当所要编码的数据的字节数不是3的整倍数,也就是说在分组时最后一组不够3个字节。这时在最后一组填充1到2个0字节。并在最后编码完成后在结尾添加1到2个"="。( 注BASE64字符表:ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/)

从以上编码规则可以得知,通过Base64编码,原来的3个字节编码后将成为4个字节,即字节增加了33.3%,数据量相应变大。所以20M的数据通过Base64编码后大小大概为20M*133.3%=26.67M。

时间: 2024-10-24 21:30:19

Base64编码字符串时数据量明显变大的相关文章

图片和base64编码字符串 互相转换,图片和byte数组互相转换

图片和base64编码字符串 互相转换 import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; import java.io.*; /** * @author lishupeng * @create 2017-05-06 下午 2:56 **/ public class Base64Test { public static void main(String[] args) { String strImg = GetImageSt

mysql通过sqoop导入到hbase中时数据量为1000w时出现Incorrect key file for table '/tmp/#sql_458_0.MYI'; try to repair it

问题:mysql通过sqoop导入到hbase中时数据量为1000w时出现Incorrect key file for table '/tmp/#sql_458_0.MYI'; try to repair it,数据量为100w等时没该问题 分析:出现该问题时因为mysql的临时目录(默认为/tmp)太小 解决方法:参考:http://blog.sina.com.cn/s/blog_4c197d420101bdn9.html mysql通过sqoop导入到hbase中时数据量为1000w时出现I

C#解码base64编码的二进制数据的代码

将做工程过程常用的代码片段做个珍藏,下边代码段是关于C#解码base64编码的二进制数据的代码.using System;static class MyModClass{public static byte[] Base64DecodeString(this string inputStr){byte[] decodedByteArray = Convert.FromBase64String(inputStr);return (decodedByteArray);}} 原文地址:https://

将图片转化为base64编码字符串

pom依赖 <dependency> <groupId>org.ops4j.base</groupId> <artifactId>ops4j-base-net</artifactId> <version>1.5.0</version> </dependency> import org.ops4j.net.Base64Encoder; /** * 根据图片地址转换为base64编码字符串 * @param img

java将base64编码字符串还原为字节数组

/** * 图片上传 * @param imgBase * @return */ @PostMapping("/upload") public CommonResult upload(String imgBase){ byte[] b1 = null; BASE64Decoder decoder = new BASE64Decoder(); try{ if (imgBase.indexOf("data:image/jpeg;base64,") != -1) { b1

关于大数据量下进行大数据展示的杂谈

作为省建系统,可能有来自全省各个部门的数据,当我们需要对这些数据进行分析和展示时,是个棘手的问题 1.每个部门的数据可通过阿里的odps落地到生产库 2.分析图每张图为一张表,表中的数据通过task分析计算增到业务分析表中 3.优点是:页面加载快速     缺点是:无法实时更新        因为表中的数据都是千万级级别的,无法实时 以下是一些数据的处理 一.数据转换1.1 double转 intint xzqhjzgw1_ = (new Double(12.36)).intValue();Sy

Base64编码为什么会使数据量变大?

当把byte[]通过Convert.ToBase64String转换成Base64编码字符串时数据量明显变大,为何呢?这里就得先探究一下什么是Base64编码. Base64编码的思想是是采用64个基本的ASCII码字符对数据进行重新编码.它将需要编码的数据拆分成字节数组.以3个字节为一组.按顺序排列24位数据,再把这24位数据分成4组,即每组6位.再在每组的的最高位前补两个0凑足一个字节.这样就把一个3字节为一组的数据重新编码成了4个字节.当所要编码的数据的字节数不是3的整倍数,也就是说在分组

.NET实现字符串base64编码

using System; using System.Text; using System.IO; using System.Security; using System.Security.Cryptography; namespace Tgnet.Base.Security { /**//// <summary> /// 有关Base64编码算法的相关操作 /// </summary> /// <example>如下的示例为对一个字符串进行Base64编码,并返回编码

使用内存映射文件MMF实现大数据量导出时的内存优化

前言 导出功能几乎是所有应用系统必不可少功能,今天我们来谈一谈,如何使用内存映射文件MMF进行内存优化,本文重点介绍使用方法,相关原理可以参考文末的连接 实现 我们以单次导出一个excel举例(csv同理),excel包含1~n个sheet,在每个sheet中存储的按行和列的坐标在单元格存储具体数据,如果我们要使用MMF,第一个要考虑的就是如何将整个excel合理的存储到MMF中.这里我们引入MMF两个对象: MemoryMappedFile --表示内存映射文件 MemoryMappedVie