如何本地转换字符串 - > Base64和BASE64 - >字符串(How to n

2019-07-19 14:08发布

如何本地转换字符串 - > Base64BASE64 - > 字符串

我觉得只有这个字节来base64string

想这样的:

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

或从另一种语言移植是更容易?

Answer 1:

您可以使用BASE64编解码器 (重命名base64在DART 2)和LATIN1编解码器 (改名latin1转换从库中达特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所转换调用。

var codec = LATIN1.fuse(BASE64);

print(codec.encode('Dart is awesome'));
// RGFydCBpcyBhd2Vzb21l

print(codec.decode('RGFydCBpcyBhd2Vzb21l'));
// Dart is awesome


Answer 2:

我想君特格拉斯的2016年4月10日,发布评论,但我没有信誉。 正如他所说,你应该使用dart:convert库,现在。 你有一对夫妇的编解码器结合起来,得到一个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



Answer 3:

作为对的0.9.2 crypto

CryptoUtils已被弃用。 使用Base64的API中dart:convert ,并在十六进制的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



Answer 4:

我把一类dart.io - > base64.dart,修改了一点,而且有你

如何使用:

var somestring = 'Hello dart!';

var base64string = Base64String.encode( somestring );
var mystring = Base64String.decode( base64string );

来源pastbin.com

来源gist.github.com



文章来源: How to native convert string -> base64 and base64 -> string
标签: dart