Comment encoder une chaîne de fléchettes en base64? [dupliquer]

Cette question a déjà une réponse ici:

Je travaille avec une API qui nécessite des données codées en base64. Comment puis-je encoder une chaîne simple en base64?

23
demandé sur Timothy Armstrong 2013-04-11 23:39:49

2 réponses

Cela nécessite quelques étapes, mais encoder une chaîne en base64 est assez simple.

Dart a une fonction dans le paquet : bibliothèque crypto, CryptoUtils.bytesToBase64, qui prend une liste d'octets à encoder en base64. Pour obtenir la liste des octets d'une chaîne Dart, vous pouvez utiliser la fonction UTF8.encode() dans la bibliothèque Dart:convert.

, Tous ensemble, cela ressemble à:

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

Si vous travaillez dans le navigateur, vous avez l'option la plus facile d'utiliser le fonction btoa intégrée au navigateur. L'extrait de code ci-dessus devient:

import 'dart:html';

main() {
  var str = "Hello world";
  var base64 = window.btoa(str);
  print(base64);
}
24
répondu Timothy Armstrong 2015-09-02 07:49:04

Il n'est pas nécessaire d'utiliser le paquet crypto puisque les bibliothèques de base fournissent un support intégré pour l'encodage et le décodage 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);
}
13
répondu Ben 2016-02-14 14:29:04