Подтвердить что ты не робот

Как кодировать строку Dart в base64?

Я работаю с API, который требует данных, закодированных в base64. Как я могу кодировать простую строку в base64?

4b9b3361

Ответ 1

Требуется несколько шагов, но кодировка строки в base64 довольно проста.

Dart имеет функцию в package: crypto library, CryptoUtils.bytesToBase64, которая берет список байтов для кодирования как base64. Чтобы получить список байтов из строки Dart, вы можете использовать функцию UTF8.encode() в библиотеке dart:convert.

Все это выглядит так:

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);
}

Ответ 2

Нет необходимости использовать пакет crypto, поскольку библиотеки ядра обеспечивают встроенную поддержку кодирования и декодирования 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 base64 = base64.encode(bytes);
  print(base64);
}