1
Я извлек это из тела по электронной почте:base64 вопрос декодирования (специальный символ?)
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?
Примечание: если я использую интерактивный инструмент https://www.base64decode.org/ с ISO-8859-1 я получаю больше символов (хотя декодирует символы не имеют смысла для меня)
<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
я получаю больше характера с 'rawToChar (RCurl :: base64Decode (TXT = .txt, режим = "сырой"))', но с ошибкой. –
@Pascal Здесь же, но дополнительные персонажи странные (/ \ 017 \ v \ 335 \ 031 \ 017 \ 202 \ 202O \ v \ 335 \ 034 \ 200 \ 220 \ 240 \ 223 \ 307G # \ 340 \ 240 \ 220 \ 223 \ 307FB \ аф \ 026 \ 306 \ 226v \ 343 \ 322'F \ 367 \ 002" \ ау \ 226GF \ 203 \ 322 # C \ 023' \ а \ 202" \ a7G \ 226 \ 306S \ 322 & \ 306 \ 226 \ 346R \ 326 \ 206V \ 226v \ 207C \ 242 \ 003 \ 003 \ 267 \ 006 \ 026FF \ 226 \ 346s \ 243 \ 003 \ 262 ($$$ \ 361 \ 321 \ 205 \ 211 \ 261 \ 224 \), поэтому мне интересно, есть ли способ указать ISO символов? – RockScience
Я вижу '
ответ
Я обнаружил, что различные базы 64 функции декодирования в R не ведут себя одинаково в моем примере:
*
RCurl::base64Decode(txt)
возвращает только первую часть текста. *paste(rawToChar(base64enc::base64decode(txt), multiple = TRUE),collapse="")
возвращается странные символы*
gmailr:::base64url_decode_to_char
является единственным, который прекрасно работает в моем случаеисточник
2016-01-29 01:59:16 RockScience
Смежные вопросы