如何在base64中编码Dart字符串?

Tim*_*ong 29 dart

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

小智 39

由于核心库提供对base64编码和解码的内置支持,因此无需使用加密包.

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

import 'dart:convert';

main() {
  var str = "Hello world";
  var bytes = utf8.encode(str);
  var base64Str = base64.encode(bytes);
  print(base64Str);
}
Run Code Online (Sandbox Code Playgroud)

  • 将UTF8更改为utf8,将BASE64更改为base64是完美的,并将链接更新为https://api.dartlang.org/stable/2.1.0/dart-convert/dart-convert-library.html (2认同)

Tim*_*ong 24

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

Dart在包中有一个函数:crypto library CryptoUtils.bytesToBase64,它接受一个字节列表来编码为base64.为了从一个飞镖字符串得到字节的列表,你可以使用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);
}
Run Code Online (Sandbox Code Playgroud)

如果您在浏览器中工作,那么您可以更轻松地使用浏览器的内置btoa功能.上面的代码段变为:

import 'dart:html';

main() {
  var str = "Hello world";
  var base64 = window.btoa(str);
  print(base64);
}
Run Code Online (Sandbox Code Playgroud)

  • 截至`crypto`包的0.9.2,不推荐使用`CryptoUtils`.请使用`dart:convert`包中的`BASE64`. (10认同)