【问题标题】:How do I encode a Dart string in base64? [duplicate]如何在 base64 中编码 Dart 字符串? [复制]
【发布时间】:2013-04-11 19:39:49
【问题描述】:

我正在使用需要以 base64 编码的数据的 API。如何在 base64 中编码一个简单的字符串?

【问题讨论】:

    标签: dart


    【解决方案1】:

    无需使用 crypto 包,因为核心库提供了对 base64 编码和解码的内置支持。

    https://api.dartlang.org/stable/2.1.0/dart-convert/dart-convert-library.html

    import 'dart:convert';
    
    main() {
      final str = "Hello world";
      final bytes = utf8.encode(str);
      final base64Str = base64.encode(bytes);
      print(base64Str);
    }
    

    【讨论】:

    【解决方案2】:

    这需要几个步骤,但是用 base64 编码字符串非常简单。

    Dart 在package:crypto 库中有一个函数CryptoUtils.bytesToBase64,它接受一个字节列表以编码为base64。为了从 Dart 字符串中获取字节列表,您可以使用 dart:convert 库中的 UTF8.encode() 函数。

    总而言之,这看起来像:

    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 函数。上面的代码sn -p变成:

    import 'dart:html';
    
    main() {
      var str = "Hello world";
      var base64 = window.btoa(str);
      print(base64);
    }
    

    【讨论】:

    • crypto 包的 0.9.2 开始,CryptoUtils 已弃用。请改用 dart:convert 包中的 BASE64
    • 是的,在 dart:convert 中使用 BASE64 使这变得更加容易。请考虑将 Ben 的答案标记为已接受,而不是这个答案。
    猜你喜欢
    • 1970-01-01
    • 2011-12-03
    • 1970-01-01
    • 2013-01-12
    • 2015-04-26
    • 2021-10-27
    • 2011-10-31
    相关资源
    最近更新 更多