2013-02-07 42 views

Trả lời

1

Tôi lấy một lớp dart.io -> base64.dart, sửa đổi nó một chút, và có bạn là

làm thế nào để sử dụng:

var somestring = 'Hello dart!'; 

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

source on pastbin.com

source on gist.github.com

2

Kể từ 0.9.2 gói crypto

CryptoUtils không được dùng nữa. Hãy sử dụng các API Base64 trong số dart:convert và API hex trong gói convert thay thế.

import 'dart:convert' show UTF8, BASE64; 

main() { 
    final str = 'https://dartpad.dartlang.org/'; 

    final base64 = BASE64.encode(UTF8.encode(str)); 
    print('base64: $base64'); 

    final str2 = UTF8.decode(BASE64.decode(base64)); 
    print(str2); 
    print(str == str2); 
} 

Hãy thử nó trong DartPad

2

tôi sẽ bình luận gì về ngày 10 tháng 4 Günter của năm 2016, bưu điện, nhưng tôi không có uy tín. Như anh ấy nói, bạn nên sử dụng thư viện dart:convert, ngay bây giờ. Bạn phải kết hợp một vài codec để lấy chuỗi utf8 ra khỏi chuỗi base64 và ngược lại. This article nói rằng fusing your codecs nhanh hơn.

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

Tại sao không này được xây dựng vào phi tiêu: chuyển đổi thư viện ?! – Pat

Các vấn đề liên quan