Gmail 主题中的西班牙字符(á、é、í、ó、ú、ñ)问题
Problems with Spanish Characters (á, é, í, ó, ú, ñ) in the Gmail subject
我需要你的帮助。也许这是一个非常简单的错误,但我无法解决。此代码非常适合创建 Gmail 草稿。但我对西班牙语字符有疑问:主题中的 á、é、í、ó、ú、ñ。 HTML 主体工作正常,它可以识别这些字符(á、é、í、ó、ú、ñ)。
我认为我需要将代码 "charset=UTF-8" 放在一些特殊的方面。你有什么建议?
function createHTMLDraftInGmail() {
var forScope = GmailApp.getInboxUnreadCount(); // needed for auth scope
var htmlBody = "<p>Hello, I am an HTML message</p><hr>";
var raw = 'From: Me <amit@labnol.org>\r\n' +
'To: You <hello@example.com.com>\r\n' +
'Subject: Save Draft Message\r\n' +
'Content-Type: text/html; charset=UTF-8\r\n' +
'\r\n' + htmlBody;
var draftBody =
Utilities.base64Encode(raw,Utilities.Charset.UTF_8).replace(/\//g,'_').replace(/\+/g,'-');
var params = {
method : "post",
contentType : "application/json",
headers : {"Authorization": "Bearer " + ScriptApp.getOAuthToken()},
muteHttpExceptions:true,
payload:JSON.stringify({
"message": {
"raw": draftBody
}
})
};
var resp =
UrlFetchApp.fetch("https://www.googleapis.com/gmail/v1/users/me/drafts", params);
Logger.log(resp.getContentText());
}
你好,
我做了一些测试,发现当您发送包含这些字符的电子邮件时,它会在主题行中添加以下内容:
=?ISO-8859-1?Q? ?=
=?
表示行首,?=
表示行尾。 ISO-8859-1?
引用字符集。我不确定 Q?
.
在 Q?
和 ?=
之间,您将看到您的主题消息。所有西班牙语字符都必须进行编码,例如。 'El Niño'(孩子),则必须写成:'El Ni=F1o'。其中 =F1
对应于 ISO-8859-1 字符集中的“ñ
”。
进一步调查,我还发现您可以使用 base64 对主题字符串进行编码,并将以下行添加到主题行:
=?UTF-8?B?RWwgTmnDsW8=?=
在这种情况下 RWwgTmnDsW8=
是 'El Niño' 编码的字符串。
第二种方法比第一种方法简单(我写完第一部分后发现的),试试看是否适合你。
我需要你的帮助。也许这是一个非常简单的错误,但我无法解决。此代码非常适合创建 Gmail 草稿。但我对西班牙语字符有疑问:主题中的 á、é、í、ó、ú、ñ。 HTML 主体工作正常,它可以识别这些字符(á、é、í、ó、ú、ñ)。
我认为我需要将代码 "charset=UTF-8" 放在一些特殊的方面。你有什么建议?
function createHTMLDraftInGmail() {
var forScope = GmailApp.getInboxUnreadCount(); // needed for auth scope
var htmlBody = "<p>Hello, I am an HTML message</p><hr>";
var raw = 'From: Me <amit@labnol.org>\r\n' +
'To: You <hello@example.com.com>\r\n' +
'Subject: Save Draft Message\r\n' +
'Content-Type: text/html; charset=UTF-8\r\n' +
'\r\n' + htmlBody;
var draftBody =
Utilities.base64Encode(raw,Utilities.Charset.UTF_8).replace(/\//g,'_').replace(/\+/g,'-');
var params = {
method : "post",
contentType : "application/json",
headers : {"Authorization": "Bearer " + ScriptApp.getOAuthToken()},
muteHttpExceptions:true,
payload:JSON.stringify({
"message": {
"raw": draftBody
}
})
};
var resp =
UrlFetchApp.fetch("https://www.googleapis.com/gmail/v1/users/me/drafts", params);
Logger.log(resp.getContentText());
}
你好,
我做了一些测试,发现当您发送包含这些字符的电子邮件时,它会在主题行中添加以下内容:
=?ISO-8859-1?Q? ?=
=?
表示行首,?=
表示行尾。 ISO-8859-1?
引用字符集。我不确定 Q?
.
在 Q?
和 ?=
之间,您将看到您的主题消息。所有西班牙语字符都必须进行编码,例如。 'El Niño'(孩子),则必须写成:'El Ni=F1o'。其中 =F1
对应于 ISO-8859-1 字符集中的“ñ
”。
进一步调查,我还发现您可以使用 base64 对主题字符串进行编码,并将以下行添加到主题行:
=?UTF-8?B?RWwgTmnDsW8=?=
在这种情况下 RWwgTmnDsW8=
是 'El Niño' 编码的字符串。
第二种方法比第一种方法简单(我写完第一部分后发现的),试试看是否适合你。