Come convertire nativo stringa -> base64 e base64 -> stringa

Come convertire nativo stringa -> base64 e base64 -> stringa

Sto trovando solo questi byte su base64string

vorrebbe questo:

String Base64String.encode(); String Base64String.decode(); 

o portato da un’altra lingua è più facile?

È ansible utilizzare il codec BASE64 (rinominato base64 in Dart 2) e il codec LATIN1 (rinominato latin1 in Dart 2) dalla libreria convert.

 var stringToEncode = 'Dart is awesome'; // encoding var bytesInLatin1 = LATIN1.encode(stringToEncode); // [68, 97, 114, 116, 32, 105, 115, 32, 97, 119, 101, 115, 111, 109, 101] var base64encoded = BASE64.encode(bytesInLatin1); // RGFydCBpcyBhd2Vzb21l // decoding var bytesInLatin1_decoded = BASE64.decode(base64encoded); // [68, 97, 114, 116, 32, 105, 115, 32, 97, 119, 101, 115, 111, 109, 101] var initialValue = LATIN1.decode(bytesInLatin1_decoded); // Dart is awesome 

Se si utilizza sempre LATIN1 per generare la stringa codificata, è ansible evitare le 2 chiamate di conversione creando un codec per convertire direttamente una stringa in / da una stringa codificata.

 var codec = LATIN1.fuse(BASE64); print(codec.encode('Dart is awesome')); // RGFydCBpcyBhd2Vzb21l print(codec.decode('RGFydCBpcyBhd2Vzb21l')); // Dart is awesome 

Vorrei commentare Günter del 10 aprile 2016, ma non ho la reputazione. Come dice, dovresti usare la libreria dart:convert , ora. Devi combinare un paio di codec per ottenere una stringa utf8 da una stringa base64 e viceversa. Questo articolo dice che fondere i tuoi codec è più veloce.

 import 'dart:convert'; void main() { var base64 = 'QXdlc29tZSE='; var utf8 = 'Awesome!'; // Combining the codecs print(utf8 == UTF8.decode(BASE64.decode(base64))); print(base64 == BASE64.encode(UTF8.encode(utf8))); // Output: // true // true // Fusing is faster, and you don't have to worry about reversing your codecs print(utf8 == UTF8.fuse(BASE64).decode(base64)); print(base64 == UTF8.fuse(BASE64).encode(utf8)); // Output: // true // true } 

https://dartpad.dartlang.org/5c0e1cfb6d1d640cdc902fe57a2a687d

A partire da 0.9.2 del pacchetto crypto

CryptoUtils è deprecato. Usa invece le API Base64 in dart:convert e le API hex nel pacchetto convert .

 import 'dart:convert' show utf8, base64; main() { final str = 'https://dartpad.dartlang.org/'; final encoded = base64.encode(UTF8.encode(str)); print('base64: $encoded'); final str2 = utf8.decode(base64.decode(encoded)); print(str2); print(str == str2); } 

Provalo su DartPad

Ho preso una class dart.io -> base64.dart, l’ho modificata un po ‘, eccovi

come usare:

 var somestring = 'Hello dart!'; var base64string = Base64String.encode( somestring ); var mystring = Base64String.decode( base64string ); 

fonte su pastbin.com

fonte su gist.github.com