I want to encode the following string in Base64Url in Flutter and decode it in on a Dart server.
"username:password"
How do I do that? And how do I do it in Base64?
I want to encode the following string in Base64Url in Flutter and decode it in on a Dart server.
"username:password"
How do I do that? And how do I do it in Base64?
The dart:convert
library contains an encoder and decoder for Base64 and Base64Url. However, they encode and decode Lists of integers, so for strings you also need to encode and decode in UTF-8. Rather than doing these two encodings separately, you can combine them with fuse
.
You need to have the following import:
import 'dart:convert';
String credentials = "username:password";
Codec<String, String> stringToBase64 = utf8.fuse(base64);
String encoded = stringToBase64.encode(credentials); // dXNlcm5hbWU6cGFzc3dvcmQ=
String decoded = stringToBase64.decode(encoded); // username:password
Note that this is equivalent to:
String encoded = base64.encode(utf8.encode(credentials)); // dXNlcm5hbWU6cGFzc3dvcmQ=
String decoded = utf8.decode(base64.decode(encoded)); // username:password
String credentials = "username:password";
Codec<String, String> stringToBase64Url = utf8.fuse(base64Url);
String encoded = stringToBase64Url.encode(credentials); // dXNlcm5hbWU6cGFzc3dvcmQ=
String decoded = stringToBase64Url.decode(encoded); // username:password
Again, this is equivalent to:
String encoded = base64Url.encode(utf8.encode(credentials)); // dXNlcm5hbWU6cGFzc3dvcmQ=
String decoded = utf8.decode(base64Url.decode(encoded)); // username:password
utf8.decode(base64.decode(credentials));
use Codec::fuse()
method –
Britzka utf8
and base64
. You just use decode
on the fused method. So, yes, much easier. –
Stonefish fuse()
method docs say: "When encoding, the resulting codec encodes with this
before encoding with other
. When decoding, the resulting codec decodes with other
before decoding with this
." –
Britzka Base64Encoder().convert(credentials.codeUnits)
, where you can also do Base64Encoder.urlSafe()
. What are your thoughts on this? It seems more readable to me. –
Stonefish base64.encoder
–
Britzka String text = 'Hello, Flutter!';
// Encode the string to Base64
String base64Encoded = base64Encode(utf8.encode(text));
print('Base64 Encoded: $base64Encoded');
it's that easy fellow flutter devs
© 2022 - 2024 — McMap. All rights reserved.