这是我的base64编码的String:
UPDATE rules_table
SET id = id||descrip
WHERE id IN (SELECT id
FROM rules_table
GROUP BY id
HAVING COUNT(DISTINCT descrip) > 1)
使用https://jwt.io/可以正确解码
但是,当尝试在Flutter中使用eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzZXNzaW9uSWQiOiJkMjNiN2ViMy03MDgyLTRkZDktOGQ0OC1lMjU2YTM3OTNiOTciLCJyZWZyZXNoVG9rZW4iOiJiN2M3MTc4Yi04OWRjLTQxMDctYjUzNC1hOGZiOTNhMzEwNzAiLCJuYW1lIjoiTGVuIiwiaWF0IjoxNTczMDI4MjU2fQ
时,会出现这些错误
base64.decode('--Base64String--);
删除FormatException: Invalid character (at character 37)
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzZXNzaW9uSWQiOiIzYWNiNzBjZS0wYzYxLT...
前面的字符串时(我只需要.
之后的信息)
我收到此错误
.
还有其他方法可以为Dart解码base64编码的字符串
答案 0 :(得分:1)
使用此package
这将帮助您像jwt.io一样解码
答案 1 :(得分:0)
您可以先使用base64.normalize
。
例如:
import 'dart:convert';
void main() {
final String b64 = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzZXNzaW9uSWQiOiJkMjNiN2ViMy03MDgyLTRkZDktOGQ0OC1lMjU2YTM3OTNiOTciLCJyZWZyZXNoVG9rZW4iOiJiN2M3MTc4Yi04OWRjLTQxMDctYjUzNC1hOGZiOTNhMzEwNzAiLCJuYW1lIjoiTGVuIiwiaWF0IjoxNTczMDI4MjU2fQ';
String foo = b64.split('.')[0];
List<int> res = base64.decode(base64.normalize(foo));
print(utf8.decode(res));
}
结果:
{"alg":"HS256","typ":"JWT"}
答案 2 :(得分:-1)
试试吧。这对你有帮助
Center(child:
Image.memory(
base64Decode(image6464.substring(23).replaceAll("\n", ""))
)
),