【发布时间】:2018-05-04 14:03:18
【问题描述】:
当我使用 Python 生成将在raw key { 'raw': value } GMAIL API 中使用的base64 字符串时,发送电子邮件非常完美。
但是当我使用 Dart 生成相同的base64 字符串时,该字符串与 python 不同,因此我无法发送电子邮件,因为 GMAIL API 告诉我message: Invalid value for ByteString
要转成base64的字符串是:
var message = '''<html><meta http-equiv="content-type" content="text/html; charset=utf-8"/><head></head><body>Test</body></html>'''
Python 代码:
import base64
e = base64.urlsafe_b64encode('''<html><meta http-equiv="content-type" content="text/html; charset=utf-8"/><head></head><body>Test</body></html>''')
print(e)
结果:
PGh0bWw-PG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiLz48aGVhZD48L2hlYWQ-PGJvZHk-VGVzdDwvYm9keT48L2h0bWw-
飞镖代码:
import 'dart:convert';
var _bytes = utf8.encode('''<html><meta http-equiv="content-type" content="text/html; charset=utf-8"/><head></head><body>Test</body></html>''');
var _base64 = base64Encode(_bytes);
print(_base64);
结果:
PGh0bWw+PG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiLz48aGVhZD48L2hlYWQ+PGJvZHk+VGVzdDwvYm9keT48L2h0bWw+
请注意,唯一的区别是 Dart 的 base64 字符串中的 + 符号和 Python 的 base64 字符串中的 - 符号
如何生成相同的 base64 python 代码,以便在 GMAIL API 中发送电子邮件
【问题讨论】: