如何在 Dart 中使用 GZip 或类似工具压缩字符串?
How to compress a string using GZip or similar in Dart?
我想在 Dart 中(在浏览器中)压缩一个字符串。我试过这个:
import 'package:archive/archive.dart';
[...]
List<int> stringBytes = UTF8.encode(myString);
List<int> gzipBytes = new GZipEncoder().encode(stringBytes);
String compressedString = UTF8.decode(gzipBytes, allowMalformed: true);
显然 UTF8.decode
不是为这个而设计的,它不起作用(文件不可读)。
在 Dart 中压缩字符串的正确方法是什么?
压缩的字节列表可能不是有效的 UTF8 序列,您可以将其编码为 base64。
import 'dart:convert';
import 'package:archive/archive.dart';
void main() {
var myString = 'myString';
var stringBytes = utf8.encode(myString);
var gzipBytes = GZipEncoder().encode(stringBytes);
var compressedString = base64.encode(gzipBytes);
print(compressedString);
}
String data=' ';
for(int i=0;i<10;i++){
data=data+'Hello World!\r\n';
}
var original=utf8.encode(data);
var compressed=gzip.encode(original);
var decompressed=gzip.decode(compressed);
如果你愿意,可以使用下面的这个功能。
import 'dart:convert';
import 'dart:io';
void _compress(String json) {
final enCodedJson = utf8.encode(json);
final gZipJson = gzip.encode(enCodedJson);
final base64Json = base64.encode(gZipJson);
final decodeBase64Json = base64.decode(base64Json);
final decodegZipJson = gzip.decode(decodeBase64Json);
final originalJson = utf8.decode(decodegZipJson);
}
我想在 Dart 中(在浏览器中)压缩一个字符串。我试过这个:
import 'package:archive/archive.dart';
[...]
List<int> stringBytes = UTF8.encode(myString);
List<int> gzipBytes = new GZipEncoder().encode(stringBytes);
String compressedString = UTF8.decode(gzipBytes, allowMalformed: true);
显然 UTF8.decode
不是为这个而设计的,它不起作用(文件不可读)。
在 Dart 中压缩字符串的正确方法是什么?
压缩的字节列表可能不是有效的 UTF8 序列,您可以将其编码为 base64。
import 'dart:convert';
import 'package:archive/archive.dart';
void main() {
var myString = 'myString';
var stringBytes = utf8.encode(myString);
var gzipBytes = GZipEncoder().encode(stringBytes);
var compressedString = base64.encode(gzipBytes);
print(compressedString);
}
String data=' ';
for(int i=0;i<10;i++){
data=data+'Hello World!\r\n';
}
var original=utf8.encode(data);
var compressed=gzip.encode(original);
var decompressed=gzip.decode(compressed);
如果你愿意,可以使用下面的这个功能。
import 'dart:convert';
import 'dart:io';
void _compress(String json) {
final enCodedJson = utf8.encode(json);
final gZipJson = gzip.encode(enCodedJson);
final base64Json = base64.encode(gZipJson);
final decodeBase64Json = base64.decode(base64Json);
final decodegZipJson = gzip.decode(decodeBase64Json);
final originalJson = utf8.decode(decodegZipJson);
}