base64解码问题(特殊字符?)

时间:2016-01-28 04:31:48

标签: r base64 ascii mime-types mime

我从电子邮件正文中提取了这个:

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

1 个答案:

答案 0 :(得分:0)

我发现R中不同的base 64解码函数在我的例子中行为不同:

* RCurl::base64Decode(txt)仅返回文本的第一部分。 * paste(rawToChar(base64enc::base64decode(txt), multiple = TRUE),collapse="")正在返回奇怪的字符
* gmailr:::base64url_decode_to_char是唯一一个在我的情况下正常工作的