2013-04-11 5 views

Répondre

24

Cela nécessite quelques étapes, mais encoder une chaîne dans base64 est assez simple. Dart a une fonction dans la bibliothèque package: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 plus facile d'utiliser du navigateur intégré btoa fonction. L'extrait de code ci-dessus devient:

import 'dart:html'; 

main() { 
    var str = "Hello world"; 
    var base64 = window.btoa(str); 
    print(base64); 
} 
+5

À partir de 0.9.2 du paquet 'crypto',' CryptoUtils' est obsolète. Utilisez à la place 'BASE64' du paquet' dart: convert'. –

+0

Oui, cela a été rendu beaucoup plus facile avec BASE64 dans dart: convert. Veuillez considérer la réponse de Ben comme acceptée à la place de celle-ci. – filiph

6

Il n'y a pas besoin d'utiliser le package Crypto puisque les bibliothèques de base fournissent prise en charge intégrée pour base64 encodage et le décodage.

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