关于几种语言(c#,php,python,javascript)字符串的gzip压缩与解压的整理
来源:互联网 发布:csmar数据库包括 编辑:程序博客网 时间:2024/05/16 04:57
背景介绍
因为一直在处理restful API,给移动端提供的数据需要考虑流量问题,优先考虑就是压缩现有的字符串,然后再考虑业务逻辑方面的减少流量。鉴于找这些资料也花了不少时间,所以整理了这篇文章,留作纪念。
参考网址
PHP与C#的压缩与解压
http://www.oschina.net/question/2265205_181108
http://www.yiibai.com/sql/function.gzencode.html
https://forums.xamarin.com/discussion/33607/using-system-io-compression-in-pcl
=====================python的压缩与解压
http://outofmemory.cn/code-snippet/2030/Python-usage-gzip-pack-shujubao
http://www.cnblogs.com/mmix2009/p/3221371.html
http://blog.csdn.net/lxdcyh/article/details/4021476
=====================
javascript的压缩与解压
http://stackoverflow.com/questions/14620769/decompress-gzip-and-zlib-string-in-javascripthttp://nodeca.github.io/pako/
代码具体实现
PHP (>=5.4)
$srcString="1";$srcCompress=base64_encode(gzencode($srcString,9));echo strlen($srcCompress).'---压缩后字符串长度<br/>';$newString=base64_decode($srcCompress);$newString=gzdecode($newString);echo $newString.'----解压后原字符串<br/>';
c#
(建议还是考虑各个平台的,PCL版本下的见前面的网址,但是没调试通过)
using System.IO.Compression;using System.Text;public string Compress (string text){byte[] buffer = Encoding.UTF8.GetBytes (text);using (MemoryStream ms = new MemoryStream ()) {GZipStream Compress = new GZipStream (ms, CompressionMode.Compress);Compress.Write (buffer, 0, buffer.Length);Compress.Close ();return Convert.ToBase64String (ms.ToArray ());}}public string Decompress (string text){byte[] buffer = Convert.FromBase64String (text);using (MemoryStream tempMs = new MemoryStream ()) {using (MemoryStream ms = new MemoryStream (buffer)) {GZipStream Decompress = new GZipStream (ms, CompressionMode.Decompress);Decompress.CopyTo (tempMs);Decompress.Close ();return Encoding.UTF8.GetString (tempMs.ToArray ());}}}
python
#coding=utf-8import base64import StringIO,gzipdef zipData( content): zbuf = StringIO.StringIO() zfile = gzip.GzipFile(mode='wb', compresslevel=9, fileobj=zbuf) zfile.write(content) zfile.close() return base64.b64encode(zbuf.getvalue())def unzipData(content): compresseddata=base64.b64decode(content) compressedstream = StringIO.StringIO(compresseddata) gzipper = gzip.GzipFile(fileobj=compressedstream) data = gzipper.read() return datas=zipData("1")print ss1=unzipData(s)print s1
javascript
<html><head><meta charset="UTF-8"><script src="http://code.jquery.com/jquery-2.1.4.min.js"></script><script src="https://raw.githubusercontent.com/nodeca/pako/master/dist/pako.js"></script><script type="text/javascript">function gzip(string) {var charData = string.split('').map(function(x){return x.charCodeAt(0);});var binData = new Uint8Array(charData);var data= pako.gzip(binData);var strData= String.fromCharCode.apply(null, new Uint16Array(data));return btoa(strData);}function ungzip(string){var strData = atob(string);var charData = strData.split('').map(function(x){return x.charCodeAt(0);});var binData = new Uint8Array(charData);var data= pako.ungzip(binData);var strData= String.fromCharCode.apply(null, new Uint16Array(data));return strData;}test="1";var s=gzip(test);alert(s);alert(ungzip(s));</script></head></html>
0 0
- 关于几种语言(c#,php,python,javascript)字符串的gzip压缩与解压的整理
- 关于几种语言(c#,php,python,javascript)字符串的gzip压缩与解压的整理
- GZip 压缩解压 --- Pako 的压缩解压
- 【C/C++】C实现gzip格式的压缩与解压Demo
- Python Gzip压缩与解压模块
- 字符串的压缩与解压
- 关于JavaScript的gzip静态压缩方法
- web中gzip,deflate的压缩与解压
- 压缩与解压1---字符串的压缩与解压
- python解压压缩包的几种方法
- python解压压缩包的几种方法
- python解压压缩包的几种方法
- C#, Java, PHP, Python和Javascript几种语言的AES加密解密实现
- C#, Java, PHP, Python和Javascript几种语言的AES加密解密实现
- 关于http的gzip解压
- php解压gzip压缩数据
- gzip, StringIO的压缩和解压
- Java实现Gzip的压缩和解压
- android 中使用Zxing实现二维码的解码和二维码的生成
- java集合——集合与数组间的转换+算法
- eclipse一般文本文件怎么用html打开
- JSON的一些基础知识
- 高通平台 graphics图形架构
- 关于几种语言(c#,php,python,javascript)字符串的gzip压缩与解压的整理
- QL Server 跨网段(跨机房)复制
- Windows下mysql忘记密码的解决方法
- 上位机界面:pyqt
- SQL Server 通过备份文件初始化复制
- NBMA 和 BMA 区别
- java技术体系
- GitBook, Git + Markdown 快速发布你的书籍
- 关系数据库Ormlite