跳至内容
技术分享
站点工具
工具
显示页面
修订记录
反向链接
最近更改
媒体管理器
网站地图
登录
>
最近更改
媒体管理器
网站地图
登录
搜索
您的足迹:
服务器技术:java:gzip服务器和js客户端
本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。
<p><br/>import java.io.ByteArrayInputStream;</p><br/><p><br/>import java.io.ByteArrayOutputStream;<br/>import java.io.IOException;<br/>import java.util.zip.GZIPInputStream;<br/>import java.util.zip.GZIPOutputStream;<br/><br/>public class GZIPUtils {<br/> public static final String GZIP_ENCODE_UTF_8 = "UTF-8";<br/><br/> public static byte[] compress(String str, String encoding) {<br/> if (str == null || str.length() == 0) {<br/> return null;<br/> }<br/> ByteArrayOutputStream out = new ByteArrayOutputStream();<br/> GZIPOutputStream gzip;<br/> try {<br/> gzip = new GZIPOutputStream(out);<br/> gzip.write(str.getBytes(encoding));<br/> gzip.close();<br/> } catch ( Exception e) {<br/> e.printStackTrace();<br/> }<br/> return out.toByteArray();<br/> }<br/><br/> public static byte[] compress(String str) throws IOException {<br/> ///str = URLEncoder.encode(str, GZIP_ENCODE_UTF_8);<br/> return compress(str, GZIP_ENCODE_UTF_8);<br/> }<br/><br/><br/> public static byte[] uncompress(byte[] bytes) {<br/> if (bytes == null || bytes.length == 0) {<br/> return null;<br/> }<br/> ByteArrayOutputStream out = new ByteArrayOutputStream();<br/> ByteArrayInputStream in = new ByteArrayInputStream(bytes);<br/> try {<br/> GZIPInputStream ungzip = new GZIPInputStream(in);<br/> byte[] buffer = new byte[256];<br/> int n;<br/> while ((n = ungzip.read(buffer)) >= 0) {<br/> out.write(buffer, 0, n);<br/> }<br/> } catch (Exception e) {<br/> e.printStackTrace();<br/> }<br/> return out.toByteArray();<br/> }<br/><br/> public static String uncompressToString(byte[] bytes, String encoding) {<br/> if (bytes == null || bytes.length == 0) {<br/> return null;<br/> }<br/> ByteArrayOutputStream out = new ByteArrayOutputStream();<br/> ByteArrayInputStream in = new ByteArrayInputStream(bytes);<br/> try {<br/> GZIPInputStream ungzip = new GZIPInputStream(in);<br/> byte[] buffer = new byte[256];<br/> int n;<br/> while ((n = ungzip.read(buffer)) >= 0) {<br/> out.write(buffer, 0, n);<br/> }<br/> return out.toString(encoding);<br/> } catch (Exception e) {<br/> e.printStackTrace();<br/> }<br/> return null;<br/> }<br/><br/> public static String uncompressToString(byte[] bytes) {<br/> return uncompressToString(bytes, GZIP_ENCODE_UTF_8);<br/> }<br/><br/> public static String toString(byte[] bytes) {<br/> return org.apache.commons.codec.binary.Base64.encodeBase64String(bytes);<br/> }<br/><br/> public static byte[] decodeToString(String bytes) {<br/> return org.apache.commons.codec.binary.Base64.decodeBase64(bytes);<br/> }<br/><br/> public static void main(String[] args) throws IOException {<br/> /*String s = "{\"navigate\":\"POSLOGIN\",\"userInfo\":{\"sysDate\":1575540038000,\"userFlag\":\"Y\",\"orderType\":\"\",\"lastURL\":\"\",\"shopName\":\"安麗體驗廣場\",\"saleDate\":1575475200000,\"locale\":\"zh_TW\",\"orderChannel\":\"POS\",\"lastDateForMonth\":1577807999000,\"regionCode\":\"130\",\"staffName\":\"邱信展2\",\"logonPosFlag\":\"Y\",\"startTime\":1575540038000,\"integerFirstDateForMonth\":20191201,\"posSequence\":0,\"saleDateInt\":20191205,\"shopCode\":\"01\",\"firstDateForMonth\":1575129600000,\"cardHiddenFlag\":\"N\",\"preference\":{\"dateFormatInput\":\"yyyyMMdd\",\"currencyFormatD3\":\"#,##0.000\",\"currencyFormatD2\":\"#,##0.00\",\"dateFormat\":\"yyyy-MM-dd\",\"currencyFormatD0\":\"#,##0\",\"timeFormat\":\"HH:mm:ss\",\"dateAndTimeFormat\":\"MM-dd HH:mm\"},\"idHiddenFlag\":\"N\",\"sysDateInt\":20191205,\"privilegeInited\":false,\"staffNumber\":\"QIU02\",\"orderDivFlowList\":[],\"posCode\":\"T003\",\"inValidPrivHotKeyStrSet\":[\"A01\"],\"intSaleDateTW\":1191205,\"currencyCode\":\"NTD\",\"integerLastDateForMonth\":20191231}}";<br/> System.out.println("字符串长度:"+s.length());<br/> System.out.println("字符长度byte:"+ s.getBytes("UTF-8").length);<br/> String cstr = GZIPUtils.toString( compress(s));<br/> cstr = new String( compress(s));<br/> System.out.println("byse64压缩后String::"+ cstr );<br/> System.out.println("byse64压缩后ByteLength::"+ cstr.getBytes("UTF-8").length);<br/><br/><br/> System.out.println("压缩后byte::"+compress(s).length);<br/> System.out.println("解压后byte:"+uncompress(compress(s)).length);<br/> System.out.println("解压字符串后::"+uncompressToString(compress(s)));<br/> System.out.println("解压字符串后::"+toString(compress(s)));<br/>*/<br/><br/> <br/> }<br/><br/>}<br/></p><p><br/></p><p><br/></p><p><br/></p><p><br/></p><p>=====================================================================</p><p><br/></p><p style="line-height: 16px;"><img src="https://wiki.gddlh.com/ueditor/dialogs/attachment/fileTypeImages/icon_txt.gif"/><a style="font-size:12px; color:#0066cc;" href="https://wiki.gddlh.com/ueditor/php/upload/file/20200303/1583223414771695.html" title="pako.html">pako.html</a></p><p style="line-height: 16px;"><img src="https://wiki.gddlh.com/ueditor/dialogs/attachment/fileTypeImages/icon_txt.gif"/><a style="font-size:12px; color:#0066cc;" href="https://wiki.gddlh.com/ueditor/php/upload/file/20200303/1583223414929887.js" title="pako.js">pako.js</a></p><p><!DOCTYPE html><br/><html><br/><head><br/> <meta charset="UTF-8"><br/> <title>pako.js实现gzip的压缩和解压</title><br/></head><br/><body><br/><script type="text/javascript" src="pako.js"></script><br/><script ><br/>var b64Data = 'H4sIAAAAAAAAAG1ST4/SQBT/Kma4smZaFll62yxBGimLtqsxZmNGZgqTtDN1ZsCwhIs375q9ajwZE5NNPOnBLyMHvoVv2imQRQ4kze/fm/d7KyTIgk+JYShA48t4ePk4HKEmmmumQpFKFKyQXupeSfDanXb7FOPWGca44vQzMgXlS5BIRZlKloV1gs+MaHP1bFh96JksRiS30ObHh+2v2+33j9tvt5vfXzeff1qcZGyfcdpp+xiXGZmcAASym9nr5EWdcjEjQrCsGtllWXlfqkgKMyttOme40+12SxvFplyKC0mtldfCNtKQNHUzbd/f/f3zZXP3ybdmcirFWOqDpwFXmYTnxzvgwrAprIGr+xP42Ot68NdEhdQxeztnYgJ6vH9sKMyO1q525CbEHoSmx5423PO7j9xyJkTRAaeUCTerba5QLGWqClshWulzYkJRzCEPLeEXRZQCdTJXlrisCL0WoI1mo4Efgvsx7B/AgO6dnelJFJ38zxbXOoAM7HAnGgyCPA+0dmbngiaHcGn3oCShNWz6+KnuMO/tsVB8wTNoJRTcMIqClGSa1YXP8zdMgf5peIX9+p56fNHP5Lsh1+D06rqszFWRQNXI9vycZJyOwXsgzRO2jI2KmWWjc2jruryE2BULhxp49Tj1NpzfKOmh3dkMj+62ekbLW6//AT9C+HuaAwAA';<br/>var ticketData = '{"ed":"20170121 09:44:01","fs":[{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"003","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"005","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"004","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"007","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"008","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"026","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"033","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"034","oids":["0"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"035","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"037","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"038","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"041","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"042","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"047","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"046","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"048","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"051","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"053","oids":["4"]}],"qty":1,"sd":"20161021 09:44:01","cd":"72016102116762039687"}';<br/><br/>var han = "就是qwqw上来就发上来快点减肥蓝色的就疯了似的";<br/>// Output to console<br/>var ehan = zip(han);<br/>var s = unzip(b64Data) ;<br/>console.log("unzipped:");<br/>console.log(s);<br/>console.log("中午");<br/>document.write(han+"<br/>");<br/>document.write(s);<br/>var data = zip(ticketData);<br/>console.log("zipped:");<br/>console.log(data);<br/>function unzip(b64Data){<br/> var strData = atob(b64Data);<br/> // Convert binary string to character-number array<br/> var charData = strData.split('').map(function(x){return x.charCodeAt(0);});<br/> // Turn number array into byte-array<br/> var binData = new Uint8Array(charData);<br/> // // unzip<br/> var data = pako.inflate(binData);<br/> // Convert gunzipped byteArray back to ascii string:<br/> //strData = String.fromCharCode.apply(null, new Uint16Array(data));<br/> // Convert gunzipped byteArray back to utf8 string:<br/> strData = byteToUtf8String(data);<br/> return strData;<br/>}<br/>function zip(str){<br/> var binaryString = pako.gzip(str, { to: 'string' });<br/> return btoa(binaryString);<br/>}<br/><br/><br/>function byteToUtf8String(arr) {<br/> if(typeof arr === 'string') {<br/> return arr;<br/> }<br/> var str = '',<br/> _arr = arr;<br/> for(var i = 0; i < _arr.length; i++) {<br/> var one = _arr[i].toString(2),<br/> v = one.match(/^1+?(?=0)/);<br/> if(v && one.length == 8) {<br/> var bytesLength = v[0].length;<br/> var store = _arr[i].toString(2).slice(7 - bytesLength);<br/> for(var st = 1; st < bytesLength; st++) {<br/> store += _arr[st + i].toString(2).slice(2);<br/> }<br/> str += String.fromCharCode(parseInt(store, 2));<br/> i += bytesLength - 1;<br/> } else {<br/> str += String.fromCharCode(_arr[i]);<br/> }<br/> }<br/> return str;<br/>}<br/></script><br/><br/>=========<br/></body><br/></html><br/><br/></p>
服务器技术/java/gzip服务器和js客户端.txt
· 最后更改: 2020/03/03 16:17 由
admin
页面工具
显示页面
修订记录
反向链接
页面重命名
回到顶部