46

我正在使用需要以 base64 编码的数据的 API。如何在 base64 中编码一个简单的字符串?

4

2 回答 2

89

无需使用 crypto 包,因为核心库提供了对 base64 编码和解码的内置支持。

https://api.dartlang.org/stable/2.1.0/dart-convert/dart-convert-library.html

import 'dart:convert';

main() {
  final str = "Hello world";
  final bytes = utf8.encode(str);
  final base64Str = base64.encode(bytes);
  print(base64Str);
}
于 2016-02-13T23:52:58.223 回答
26

它需要几个步骤,但在 base64 中编码字符串非常简单。

Dart 在package:crypto库中有一个函数CryptoUtils.bytesToBase64,它接受一个字节列表来编码为 base64。为了从 Dart 字符串中获取字节列表,可以使用dart:convertUTF8.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);
}
于 2013-04-11T19:39:49.990 回答