我从电子邮件正文中提取了这个:
txt <- "PHRhYmxlIGFsaWduPSJjZW50ZXIiIGNlbGxzcGFjaW5nPSIwIiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIwIiBzdHlsZT0icGFkZGluZy10b3A6IDEwcHg7IiB3aWR0aD0iNjEycHgiPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNjEycHgiIGhlaWdodD0iMTM2cHgiIHN0eWxlPSJsaW5lLWhlaWdodDogMDtwYWRkaW5nOjA7Ij48aW1nIHNyYz0iaHR0cHM6Ly9kMjZraHJ2OHhkNW9hYS5jbG91ZGZyb250Lm5ldC9lZG0vYmdfbG9nb19kZWZhdWx0XzYxMngxMzYuZ2lmIiB3aWR0aD0iNjEycHgiIGhlaWdodD0iMTM2cHgiIC8-PC90ZD4KCTwvdHI-CQoJPHRyPgoJCTx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjYxMnB4IiBzdHlsZT0ibGluZS1oZWlnaHQ6IDA7cGFkZGlu"
(出于保密原因,我已将消息剪切为500个字符)
我需要将其转换为html。
txt = substr(txt,1,500)
RCurl::base64Decode(txt = txt)
然而,这只给出了消息的第一部分:
<table align=\"center\" cellspacing=\"0\" border=\"0\" cellpadding=\"0\" style=\"padding-top: 10px;\" width=\"612px\">\n\t<tr>\n\t\t<td width=\"612px\" height=\"136px\" style=\"line-height: 0;padding:0;\"><img src=\"https://d26khrv8xd5oaa.cloudfront.net/edm/bg_logo_default_612x136.gif\" width=\"612px\" height=\"136px\"
似乎有一个特殊的角色会产生问题,但我找不到确切的问题。这是ISO / UTF编码的问题吗?
注意:如果我使用ISO-8859-1的在线工具https://www.base64decode.org/,我会获得更多字符(尽管解码字符对我来说没有意义)
<table align="center" cellspacing="0" border="0" cellpadding="0" style="padding-top: 10px;" width="612px">
<tr>
<td width="612px" height="136px" style="line-height: 0;padding:0;"><img src="https://d26khrv8xd5oaa.cloudfront.net/edm/bg_logo_default_612x136.gif" width="612px" height="136px" /ÝOÝ ÇG#à ÇFBfÆvãÒ'F÷"vGFÒ#c'"7GÆSÒ&ÆæRÖVvC¢·FF
答案 0 :(得分:0)
我发现R中不同的base 64解码函数在我的例子中行为不同:
* RCurl::base64Decode(txt)
仅返回文本的第一部分。
* paste(rawToChar(base64enc::base64decode(txt), multiple = TRUE),collapse="")
正在返回奇怪的字符
* gmailr:::base64url_decode_to_char
是唯一一个在我的情况下正常工作的