(解)压缩 Base64 字符串

2024-03-17

PHP代码:

$txt="John has cat and dog."; //plain text
$txt=base64_encode($txt); //base64 encode
$txt=gzdeflate($txt,9); //best compress
$txt=base64_encode($txt); //base64 encode
print_r($txt); //print it

下面的代码返回:

C861zE/KdMqPjPBNjzRyM/B0dyuNcnbKTjJKLgUA

我正在尝试用Java 压缩字符串。

        // Encode a String into bytes
     String inputString = "John has cat and dog.";
     inputString=Base64.encode(inputString);

     byte[] input = inputString.getBytes("UTF-8");

     // Compress the bytes
     byte[] output = new byte[100];
     Deflater compresser = new Deflater();
    //compresser.setLevel(Deflater.BEST_COMPRESSION);
     compresser.setInput(input);
     compresser.finish();
     int compressedDataLength = compresser.deflate(output);     
     String outputString = new String(output, 0, compressedDataLength,"UTF-8");     
     outputString=Base64.encode(outputString);  
     System.out.println(outputString);      

但打印错误的字符串:eD8L

Pz9PP3Q/Pz9NPzRyMz90dys/cnY/TjJKLgUAPygJTA==

必须是:

C861zE/KdMqPjPBNjzRyM/B0dyuNcnbKTjJKLgUA

怎么解决呢?谢谢。


Use Deflater像这样 :

ByteArrayOutputStream stream = new ByteArrayOutputStream();
Deflater compresser = new Deflater(Deflater.BEST_COMPRESSION, true);
DeflaterOutputStream deflaterOutputStream = new DeflaterOutputStream(stream, compresser);
deflaterOutputStream.write(input);
deflaterOutputStream.close();
byte[] output = stream.toByteArray();

要解压缩压缩的内容:

    ByteArrayOutputStream stream2 = new ByteArrayOutputStream();
    Inflater decompresser = new Inflater(true);
    InflaterOutputStream inflaterOutputStream = new InflaterOutputStream(stream2, decompresser);
    inflaterOutputStream.write(output);
    inflaterOutputStream.close();
    byte[] output2 = stream2.toByteArray();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

(解)压缩 Base64 字符串 的相关文章

随机推荐

  • 使用 python 将数据从 xml 文件填充到 sqlite 数据库

    我有一个与解决问题的一些指南相关的问题 我有一个 xml 文件 我必须使用脚本语言将其填充到数据库系统 无论如何 它可能是 sqlite mysql 中 Python 有人知道如何继续吗 我需要进一步阅读哪些技术 我必须安装哪些环境 有关于
  • CFWheels网站根目录的不同重写模式

    我需要关于研究以下问题的建议 车轮网站有set URLRewriting On 配置完毕 除了根页面之外 一切看起来都很好 所有链接均使用linkTo看起来像website tld controller action 但是在 模式下 切换
  • WeakHashMap 是否会不断增长,或者是否会清除垃圾键?

    我正在尝试使用WeakHashMap https docs oracle com javase 10 docs api java util WeakHashMap html作为并发Set https docs oracle com java
  • 如何从 Visual Studio 解决方案中获取所有界面类型?

    我正在尝试编写 Visual Studio 的扩展 我需要获取当前打开的所有项目中找到的所有接口类型的列表solution 到目前为止 我已经尝试使用 EnvDev 命名空间来执行此操作 有没有办法在不解析项目的 cs 文件的情况下执行此操
  • 为什么记录类型定义中不允许使用灵活类型?

    我正在尝试这个 type TS1 lt state action gt actions state gt seq lt action gt move state gt action gt state state0 state 但类型检查器不
  • JobIntentService 和 IntentService 有什么区别?

    我不明白这两个 API 之间有什么区别 我的意思是何时使用第一个 为什么会有 JobIntentService 提前致谢 我建议阅读这篇文章 解释两者之间的区别意向服务和求职意向服务 https medium com hupareshubh
  • 如何设置休眠sql_mode

    有没有办法在 Hibernate 属性或连接字符串中设置 sql mode 对于 MySql 数据库 Thanks Stefano Yes as 有记录的 https dev mysql com doc connector j 5 1 en
  • .htaccess 重定向文件夹

    All 我想重定向所有访问的流量http 我的网站 http mysite to http mysite public http mysite public文件夹 目前我正在 htaccess 文件中使用以下内容来执行此操作 它适用于根目录
  • 在python中读取.dat文件

    我有一个 dat 文件 我不知道它是如何创建的 使用了什么分隔符以及有关它的任何详细信息 我只有相应的 mdf 和 csv 文件 就这样 python 有什么方法可以读取这个 dat 文件吗 我尝试过的几种方法 file 736 2 Per
  • Bash 中的 Echo 换行符打印文字 \n

    如何打印换行符 这仅仅打印 n echo e Hello nWorld Hello nWorld Use printf反而 printf hello nworld n printf在不同环境下的行为比echo
  • 我可以在 mongodb 的 $match 聚合函数中使用 $in 吗

    我试图在 match 聚合 函数中使用 in 运算符 由于某种原因 它不适用于 Id 字段 但我找不到任何文档指出 mongodb 不支持此功能 var ids 1 2 3 4 an example I am using real mong
  • Django 聚合:仅求和返回值?

    我有一个已付价值列表 并想显示已付总额 我已经使用了聚合和Sum一起计算值 问题是 我只想打印出总值 但聚合打印出 amount sum 480 0 480 0 为总增加值 在我看来 我有 from django db models imp
  • Kafka 一个分区有多个消费者

    我有一个将消息写入主题 分区的生产者 为了保持顺序 我想使用单个分区 并且我希望 12 个消费者读取该单个分区中的所有消息 没有消费者组 所有消息都应该发送给所有消费者 这是可以实现的吗 我读过一些论坛 每个分区只有一个消费者可以阅读 您可
  • 查找最长可能重复字符串的实用程序

    是否有任何工具或实用程序或 perl python 脚本可以在大型文本文件中找到最长的重复子字符串并打印这些模式以及每个模式出现的次数 http en wikipedia org wiki Longest repeated substrin
  • 如何从某个数字/偏移量开始自动增量?

    我正在运行 fgetcsv 查询以将一堆数据从 CSV 导入 WordPress 我想知道如何从某个数字开始自动递增 例如从 1000 开始 import1 INSERT into wp postmeta meta id post id m
  • Java 7 和 Java 8 之间的舍入不一致是一个错误吗?

    我发现舍入不一致DecimalFormat http docs oracle com javase 8 docs api java text DecimalFormat htmljava 7 和 java 8 之间的类 这是我的测试用例 D
  • 如果堆栈在数字较低的地址处增长,为什么指针比较会颠倒这一点?

    由于堆栈向下增长 即朝着数值较小的内存地址增长 为什么 i lt j是真的 如果我错了 请纠正我 但我想这是 C 创建者 C 维护的 的设计决定 但我想知道为什么 同样奇怪的是 堆分配的对象pin位于比堆栈变量在数值上更高的内存地址 这也与
  • 为什么在手动刷新响应时 ASP.NET 将 Content-Length 标头替换为 Transfer-Encoding 标头?

    我们的 Web 应用程序 ASP NET Web Forms 有一个页面 将向用户显示最近生成的 PDF 文件 由于 PDF 文件有时非常大 因此我们实现了一种 流式传输 方法 将其分块发送到客户端浏览器 尽管以块的形式发送数据 但我们在发
  • 使用 Cython 进行部分构建的构建

    我在构建中面临 cython 的问题 其中一部分是使用 cython 构建的模块 c文件和一个 pyx file 我已经尝试了很多解决方案 Sean Gillies 博客 814 将 pyproj 添加到构建中 http sgillies
  • (解)压缩 Base64 字符串

    PHP代码 txt John has cat and dog plain text txt base64 encode txt base64 encode txt gzdeflate txt 9 best compress txt base