Sto lavorando con un'API che richiede dati codificati in base64. Come posso codificare una semplice stringa in base64?Come si codifica una stringa Dart in base64?
risposta
Richiede alcuni passaggi, ma la codifica di una stringa in base64 è piuttosto semplice.
Dart ha una funzione nella libreria package:crypto, CryptoUtils.bytesToBase64
, che accetta un elenco di byte da codificare come base64. Per ottenere l'elenco dei byte da una stringa Dart, è possibile utilizzare la funzione UTF8.encode()
nella libreria dart:convert.
Tutti insieme, questo appare come:
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);
}
se si sta lavorando all'interno del browser, quindi si ha la possibilità più semplice di utilizzare il browser incorporato in btoa
funzione. Il frammento di codice di cui sopra diventa:
import 'dart:html';
main() {
var str = "Hello world";
var base64 = window.btoa(str);
print(base64);
}
Non è necessario usare il pacchetto crittografia poiché le librerie di base forniscono supporto integrato per la codifica e la decodifica 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);
}
partire 0.9.2 del pacchetto 'crypto',' CryptoUtils' è deprecato. Usa invece 'BASE64' dal pacchetto' dart: convert'. –
Sì, questo è stato reso molto più semplice con BASE64 in dart: convert. Per favore considera di contrassegnare la risposta di Ben come accettata invece di questa. – filiph