web-dev-qa-db-ja.com

base64でDart文字列をエンコードするにはどうすればよいですか?

Base64でエンコードされたデータを必要とするAPIを使用しています。単純な文字列をbase64でエンコードするにはどうすればよいですか?

29

いくつかの手順が必要ですが、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);
}
_
24

コアライブラリはbase64エンコードとデコードの組み込みサポートを提供するため、cryptoパッケージを使用する必要はありません。

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