我正在使用需要以base64编码的数据的API。我怎样才能在base64中编码一个简单的字符串?如何在base64中编码Dart字符串?
22
A
回答
24
它需要几个步骤,但在base64中编码字符串非常简单。
Dart在package:crypto库中有一个函数CryptoUtils.bytesToBase64
,它接受一个字节列表以base64编码。为了从Dart字符串中获取字节列表,可以使用dart:convert库中的UTF8.encode()
函数。
总之,这看起来像:
import 'dart:convert';
import 'package:crypto/crypto.dart';
main() {
var str = "Hello world";
var bytes = UTF8.encode(str);
var base64 = CryptoUtils.bytesToBase64(bytes);
print(base64);
}
如果你在浏览器中工作,那么你必须使用内置btoa
功能浏览器的更容易的选择。上面的代码片段变成:
import 'dart:html';
main() {
var str = "Hello world";
var base64 = window.btoa(str);
print(base64);
}
6
没有必要使用加密包由于芯库提供内置的base64编码和解码。
https://api.dartlang.org/1.14.2/dart-convert/BASE64-constant.html
import 'dart:convert';
main() {
var str = "Hello world";
var bytes = UTF8.encode(str);
var base64 = BASE64.encode(bytes);
print(base64);
}
As的'crypto'包的0.9.2,'CryptoUtils'已弃用。使用'dart:convert'包中的'BASE64'。 – 2016-04-10 12:27:41
是的,使用DART进行BASE64变得更容易:convert。请考虑标记本的答案为接受而不是这一个。 – filiph 2017-03-03 00:55:01