Node.jsのビルドインモジュールを使って文字列を圧縮 (gzip)
const Buffer = require('buffer').Buffer;
const zlib = require('zlib');
/**
* 圧縮
*/
function gzip(str){
const content = encodeURIComponent(str) // エンコード
const result = zlib.gzipSync(content) // 圧縮
const value = result.toString('base64') // Buffer => base64変換
return value;
}
/**
* 解凍
*/
function unzip(value){
const buffer = Buffer.from(value, 'base64') // base64 => Bufferに変換
const result = zlib.unzipSync(buffer) // 復号化
const str = decodeURIComponent(result).toString('utf-8') // デコード
return str;
}
const str = `あいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえお`
const str1 = gzip(str);
const str2 = unzip(str1);
console.log(str)
console.log(str1)
console.log(str2)
圧縮前
あいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえお
圧縮後
H4sIAAAAAAAAA1N1NVa1MFS1MFKFMkxgDDMYwwLGcFQdVTyqmBqKATEK0v52AgAA
解凍
あいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえお