Искам да кодирам следния низ в Base64Url във Flutter и да го декодирам на сървър на Dart.
"username:password"
Как да направя това? И как да го направя в Base64?
Искам да кодирам следния низ в Base64Url във Flutter и да го декодирам на сървър на Dart.
"username:password"
Как да направя това? И как да го направя в Base64?
Библиотеката dart:convert
съдържа енкодер и декодер за Base64 и Base64Url. Те обаче кодират и декодират списъци с цели числа, така че за низове също трябва да кодирате и декодирате в UTF-8. Вместо да правите тези две кодирания поотделно, можете да ги комбинирате с fuse
.
Трябва да имате следния импорт:
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
Имайте предвид, че това е еквивалентно на:
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
Отново, това е еквивалентно на:
String encoded = base64Url.encode(utf8.encode(credentials)); // dXNlcm5hbWU6cGFzc3dvcmQ=
String decoded = utf8.decode(base64Url.decode(encoded)); // username:password
utf8.decode(base64.decode(credentials));
използвайте метод Codec::fuse()
- person pskink; 18.05.2019
utf8
и base64
. Просто използвате decode
на метода fused. Така че, да, много по-лесно.
- person Suragch; 18.05.2019
fuse()
казват: При кодиране полученият кодек кодира с this
преди кодиране с other
. При декодиране полученият кодек се декодира с other
преди декодиране с this
.
- person pskink; 18.05.2019
Base64Encoder().convert(credentials.codeUnits)
, където можете също да направите Base64Encoder.urlSafe()
. Какво мислите по този въпрос? По-четливо ми изглежда.
- person Suragch; 19.05.2019