php deflate 解压,PHP编码gzdeflate与Golang解码DEFLATE
8月7日@黄同学找我问:“数据存到redis是gzdeflate压缩过的数据,golang从redis取出来,解压缩失败”。很多从PHP转Golang的业务经常会遇到,所以写下这篇博文,希望可以帮助更多人。
想要使用golang解码php的编码,那么就应该需要知道gzdeflate函数的算法是什么,先到gzdeflate文档,查看了一下发现:
gzdeflate使用的是纯粹的DEFLATE格式。这就与golang的compress/flate包一致了。有了了解就可以看着golang文档实现代码了。遂与@黄同学同学写了几个函数进行验证,最后定稿如下:package mainimport ("strings""fmt""compress/flate""bytes""io/ioutil")func main() {str:="huangyupeng123"b:=Gzdeflate(str,-1)ss:=Gzencode(string(b))fmt.Println(ss)/*str:="huangyupeng123"ss:=Gzdeflate(str,0)fmt.Println(ss)s=Gzencode(ss)fmt.Println(s)*/}// 解码func Gzencode(data string) string {r :=flate.NewReader(strings.NewReader(data))defer r.Close()out, err := ioutil.ReadAll(r)if err !=nil {fmt.Errorf("%s\n",err)}return string(out)}// 编码func Gzdeflate(data string,level int) []byte {var bufs bytes.Bufferw,_ :=flate.NewWriter(&bufs,level)w.Write([]byte(data))w.Flush()w.Close()return bufs.Bytes()}// 编码func GzdeflateForString(data string,level int) string {var bufs bytes.Bufferw,_ :=flate.NewWriter(&bufs,level)w.Write([]byte(data))w.Flush()defer w.Close()return bufs.String()}
php deflate 解压,PHP编码gzdeflate与Golang解码DEFLATE相关推荐
- 爬取B站弹幕(Java版本,附带deflate解压)
前几天突发奇想要爬取B站的弹幕,于是简单在网上找到了B站的弹幕API,关于如何获取B站的接口这里不再赘述,本文主要集中解决我在此开发过程中所遇到的难题.(采用okhttp) 开始的时候,我是想直接爬取 ...
- php解压base64编码,PHP函数分享之解压缩base64压缩文件
解压缩base64 压缩文件,稍微解释一下,比如你有一个pdf文件,使用软件压缩成了.gz格式的文件,然后再把这个文件做成了basa64 String 传输给某个人,比如这个人就是我,好吧,问题来了, ...
- php解压base64编码,php base64编码和urlencode
Revit如何模型导入到InfraWorks中 Infraworks也就是以前的Autodesk Infrastructure Modeler(AIM)作为一款优秀的概念设计软件,能接收来自各种来源的 ...
- GZip、Deflate压缩算法对应的C#压缩解压函数
GZip解压函数 View Code GZip压缩函数 View Code 1 /// <summary> 2 /// GZip压缩函数 3 /// </summary> 4 ...
- Linux(程序设计):29---Zlib库(数据压缩与解压)
一.Zlib库概述 zlib压缩算法页是对deflate进行的封装,在另一篇文章中我们介绍过了Deflate压缩算法算法,文章最后也提到了zlib压缩算法.具体可以参阅:https://blog.cs ...
- C# .NET 使用DotNetZip开源类库 处理 压缩/解压 Zip 处理乱码情况
dotNetZip on CodePlex: http://dotnetzip.codeplex.com/ 压缩/解压/重命名: //1.压缩//指定编码,防止中文乱码情况using (ZipFile ...
- web上传zip大文件,java服务接收并解压ZIP文件
目录 一.背景 二.知识点 三.代码实现 1.依赖 2.web 代码 3. java服务端 一.背景 公司产品小伙伴画了原型后,需要上传到服务器上供开发查看:由于文件数量很多,100M左右差不多要传3 ...
- c#中使用Zlib压缩与解压的方法
目录 介绍 System.IO.Compression zlib.net SharpZipLib 速度对比 总结 参考与延申 关于Zlib 关于 Deflate 和 Raw Deflate 关于CSh ...
- [manjaro] unzip-icon解决解压zip文件乱码
简述: 网上说解压zip文件用unzip命令.然后我的没有unzip.就安装了一个.开始解压.解压成功.但是乱码...恶心.开始查资料. 说解压的时候用-O指定解压的编码即可..好.开始动工.但是un ...
- 深度解读基于commons-compress解压文件——7z与常规解压
简介 java解压文件的方式有很多种,Apache官方提供了一个工具,可以用来解压很多类型的文件.该工具可以解压和压缩带密码的7z文件,并支持ar, arj, cpio, dump, tar, zip ...
最新文章
- centos5.6 (64bit)编译安装vsftpd-2.3.4的配置(两种用户登录)[连载之电子商务系统架构]...
- python封装方法有几种_python之--------封装
- poj1426(dfs)
- Android从url不产生cookie,如何从android.webkit.CookieManager获取所有cookie或cookie的URL
- 详细地图_一目了然:蒙城学区划分详细地图
- 企业发卡修复版源码(短链二维码)
- 负载均衡获取客户端IP
- 获得1.5亿区块链投资后,矩阵元怎么做区块链?
- 关于JavaScript中return的使用情况
- 什么是 Elasticsearch?一篇搞懂
- excel查找空值快捷键_有了这7个Excel中常用的小技巧,再也不用担心自己要加班了!...
- 国产企业级服务器操作系统排名,国产操作系统那个最好排名
- c语言实现按键的抖动与消除,7.3 按键消抖
- vue后台管理做适配的最佳方案,你知道吗
- 无法识别 移动固态硬盘_固态硬盘不识别怎么办 固态硬盘不认盘解决方法介绍...
- 在LR字符串中交换相邻字符
- mysql redo查看_mysql redo
- Thinkphp5.1整合支付宝APP支付
- 流形上的预积分(下)
- Istio 101:Service Mesh的未来将与Knative和Apahce Whisk等技术和谐共存——采访RedHat的Istio产品经理