Как встроенная строка преобразования -> base64 и base64 -> string

Как встроенная строка преобразования -> base64 и base64 -> string

Я нахожу только эти байты в base64string

хотел бы это:

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

или портирован с другого языка проще?

Вы можете использовать кодек BASE64 (переименованный base64 в Dart 2) и кодек LATIN1 (переименованный latin1 в Dart 2) из ​​библиотеки конвертирования.

 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 

Если вы всегда используете LATIN1 для генерации закодированной строки, вы можете избежать 2 конвертирующих вызовов, создав кодек для прямого преобразования String в / из закодированной строки.

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

Я бы прокомментировал сообщение Günter от 10 апреля 2016 года, но у меня нет репутации. По его словам, теперь вы должны использовать dart:convert library. Вы должны объединить пару кодеков, чтобы получить строку utf8 из строки base64 и наоборот. В этой статье говорится, что слияние ваших кодеков происходит быстрее.

 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

Начиная с 0.9.2 crypto пакета

CryptoUtils устарел. Используйте API Base64 в dart:convert и hex API в 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); } 

Попробуйте в DartPad

Я взял class dart.io -> base64.dart, немного изменил его, и там вы

как использовать:

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

источник на pastbin.com

источник на gist.github.com

Давайте будем гением компьютера.