文本太长对网络传输是个问题,所以找了一些压缩的方法,发现LZ4不错。
对应C#版本的,找到了lz4net这个工具,具体在https://github.com/MiloszKrajewski/lz4net ,或者再nuget中搜索此工具。
在nuget加载lz4
注意:不要压缩des或aes等密文,不然压缩后会暴增长度。具体原因不详,可能是算法的问题。建议先压缩后加密。
以下的是使用方法:
using System;
using System.Text ;
using LZ4;
namespace SundayOA.Web.code
{
/// <summary>
/// LZ4 压缩工具类
/// </summary>
public class LZ4Lib
{
/// <summary>
/// 压缩文本
/// </summary>
/// <param name="text">文本内容</param>
/// <returns></returns>
public static string CompressBuffer(string text)
{
var compressed = Convert.ToBase64String(
LZ4Codec.Wrap(Encoding.UTF8.GetBytes(text)));
return compressed;
}
/// <summary>
/// 解压文本
/// </summary>
/// <param name="compressed">压缩的文本</param>
/// <returns></returns>
public static string DecompressBuffer(string compressed)
{
var lorems =
Encoding.UTF8.GetString(
LZ4Codec.Unwrap(Convert.FromBase64String(compressed))) ;
return lorems ;
}
}
}