精确计算base64文件大小(含测试文件和源码) 您所在的位置:网站首页 如何查看max文件大小 精确计算base64文件大小(含测试文件和源码)

精确计算base64文件大小(含测试文件和源码)

#精确计算base64文件大小(含测试文件和源码)| 来源: 网络整理| 查看: 265

苟且,诗与远方

1.base64简介

Base64这个术语最初是在“MIME内容传输编码规范”中提出的。Base64不是一种加密算法,虽然编码后的字符串看起来有点加密的赶脚。它实际上是一种“二进制到文本”的编码方法,它能够将给定的任意二进制数据转换(映射)为ASCII字符串的形式,以便在只支持文本的环境中也能够顺利地传输二进制数据。例如支持MIME的电子邮件应用,或需要在XML中存储复杂数据时。

2.在线获取文件base64

链接1: 在线获取文件base64. 链接2: 百度AI-base64音频测试文件. 文件信息

项目Value文件来源百度AI官方下载地址http://speech-doc.gz.bcebos.com/rest-api-asr/public_audio/16k.wav文件名16k.wav文件类型wav格式音频文件windows下文件大小126 KB (129998 字节)文件精确大小129998.25字节base64总长度173332位base64文件实体部分长度173310位base64文件尾部还有多少个’=’1个 3. 拆分base64文件

在这里插入图片描述 **看上图,圈出来的data:audio/wav;base64,一共22个字符为文件头,其他文文件实体。** . .

4. 精确计算base64文件大小 /** * @功能 精确计算base64字符串文件大小(单位:B) * @注意 base64字符串(不含data:audio/wav;base64,文件头) */ public static double base64file_size( String base64String ) { //1.获取base64字符串长度(不含data:audio/wav;base64,文件头) int size0 = base64String.length(); //2.获取字符串的尾巴的最后10个字符,用于判断尾巴是否有等号,正常生成的base64文件'等号'不会超过4个 String tail = base64String.substring(size0-10); //3.找到等号,把等号也去掉,(等号其实是空的意思,不能算在文件大小里面) int equalIndex = tail.indexOf("="); if(equalIndex > 0) { size0 = size0 - (10 - equalIndex); } //4.计算后得到的文件流大小,单位为字节 return size0 -( (double)size0 / 8 ) * 2; } 计算出来的结果为:129998.25字节,windows系统和大多数API取129998字节

//* 以上面的测试文件16k.wav为例,其base64实体长度为173310,大小精确计算出来为129998.25字节, //* 如果是调用百度官方语音识别API接口接收时,接收到的数据大小我们需要传入129998,不然接口会报文件大小错误。

5. 网上其他错误的计算方法 int strLen=173310; int fileSize=strLen-(strLen/8)*2; 计算出来的结果为:129999字节

// 错误1:没有除去文件尾巴的等于号,' = ' 是为空的占位符,不计算在文件大小里面的。 // 错误2:base64长度除于8得到的是21663.75,int类型把小数去掉了,精度不够了。 . . . . .

研究不易,源码免费,欢迎各位观众老爷 右上角 留言点赞

. . . . .



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有