2013-04-11 5 views

ответ

24

Это требует нескольких шагов, но кодировка строки в base64 довольно проста.

Dart имеет функцию в библиотеке package:crypto, CryptoUtils.bytesToBase64, которая берет список байтов для кодирования в качестве base64. Чтобы получить список байтов из строки Дарта, вы можете использовать функцию UTF8.encode() в библиотеке dart:convert.

Все вместе это выглядит следующим образом:

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

Если вы работаете в браузере, то у вас есть более легкий вариант использования браузер встроенный в btoa функции. Приведенный выше фрагмент кода становится:

import 'dart:html'; 

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

По состоянию на 0.9.2 от 'crypto' пакета' CryptoUtils' осуждается. Вместо этого используйте 'BASE64' из пакета' dart: convert'. –

+0

Да, это стало намного проще с BASE64 в дроте: конвертировать. Пожалуйста, подумайте о том, чтобы отметить ответ Бена как принятый вместо этого. – filiph

6

Там нет необходимости использовать пакет шифрования, так как основные библиотеки обеспечивают встроенную поддержку для кодирования и декодирования 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); 
} 
Смежные вопросы