如何将字符串转换为 base64,以及如何将 base64 转换为字符串。
我只找到了这个将字节转换为base64字符串的方法
我想要的是:
String Base64String.encode();
String Base64String.decode();
从另一种语言移植是否更容易?
如何将字符串转换为 base64,以及如何将 base64 转换为字符串。
我只找到了这个将字节转换为base64字符串的方法
我想要的是:
String Base64String.encode();
String Base64String.decode();
从另一种语言移植是否更容易?
从0.9.2版本开始,crypto
包中的CryptoUtils
已过时。请改用dart:convert
中的Base64
API以及convert
包中的hex API。
import 'dart:convert' show utf8, base64;
main() {
final str = 'https://dartpad.dartlang.org/';
final encoded = base64.encode(UTF8.encode(str));
print('base64: $encoded');
final str2 = utf8.decode(base64.decode(encoded));
print(str2);
print(str == str2);
}
在 DartPad 中尝试它
您可以使用convert库中的BASE64编解码器(在Dart 2中更名为base64
)和LATIN1编解码器(在Dart 2中更名为latin1
)。
var stringToEncode = 'Dart is awesome';
// encoding
var bytesInLatin1 = LATIN1.encode(stringToEncode);
// [68, 97, 114, 116, 32, 105, 115, 32, 97, 119, 101, 115, 111, 109, 101]
var base64encoded = BASE64.encode(bytesInLatin1);
// RGFydCBpcyBhd2Vzb21l
// decoding
var bytesInLatin1_decoded = BASE64.decode(base64encoded);
// [68, 97, 114, 116, 32, 105, 115, 32, 97, 119, 101, 115, 111, 109, 101]
var initialValue = LATIN1.decode(bytesInLatin1_decoded);
// Dart is awesome
LATIN1
生成编码后的字符串,您可以通过创建一个编解码器来直接将字符串转换为/从编码后的字符串来避免2次转换调用。var codec = LATIN1.fuse(BASE64);
print(codec.encode('Dart is awesome'));
// RGFydCBpcyBhd2Vzb21l
print(codec.decode('RGFydCBpcyBhd2Vzb21l'));
// Dart is awesome
dart:convert
库。你必须组合一些编解码器才能从base64字符串中获取utf8字符串,反之亦然。 这篇文章说,融合你的编解码器会更快。import 'dart:convert';
void main() {
var base64 = 'QXdlc29tZSE=';
var utf8 = 'Awesome!';
// Combining the codecs
print(utf8 == UTF8.decode(BASE64.decode(base64)));
print(base64 == BASE64.encode(UTF8.encode(utf8)));
// Output:
// true
// true
// Fusing is faster, and you don't have to worry about reversing your codecs
print(utf8 == UTF8.fuse(BASE64).decode(base64));
print(base64 == UTF8.fuse(BASE64).encode(utf8));
// Output:
// true
// true
}
https://dartpad.dartlang.org/5c0e1cfb6d1d640cdc902fe57a2a687d
fuse
操作存在的目的是让您自己制作所需的组合。 - lrnimport 'dart:convert';
main() {
// encode
var str = "Hello world";
var bytes = utf8.encode(str);
var base64Str = base64.encode(bytes);
print(base64Str);
// decode
var decoded_bytes = base64.decode(base64Str);
var decoded_str = utf8.decode(decoded_bytes);
print(decoded_str);
}
var somestring = 'Hello dart!';
var base64string = Base64String.encode( somestring );
var mystring = Base64String.decode( base64string );