我惊讶地发现,当我在 Dart 中将字符串转换为 Base64Url 时,我得到了一个以=
填充字符结尾的字符串。
import 'dart:convert';
main() {
String credentials = "username:password";
String encoded = base64Url.encode(utf8.encode(credentials));
print(encoded); // dXNlcm5hbWU6cGFzc3dvcmQ=
}
我认为 Base64Url 的目的是删除 URL 中不好的字符。显然不是。文档甚至列出了它。那么这是否意味着我必须自己手动删除它?
final noPadding = encoded.replaceAll(RegExp('='), ''); // dXNlcm5hbWU6cGFzc3dvcmQ