2016-01-28 1 views
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 
+0

я получаю больше характера с 'rawToChar (RCurl :: base64Decode (TXT = .txt, режим = "сырой"))', но с ошибкой. –

+0

@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

+0

Я вижу '

\ n \ t \ n \ t \ t
\ n \ t \ n \ t \ t

ответ

0

Я обнаружил, что различные базы 64 функции декодирования в R не ведут себя одинаково в моем примере:

* RCurl::base64Decode(txt) возвращает только первую часть текста. * paste(rawToChar(base64enc::base64decode(txt), multiple = TRUE),collapse="") возвращается странные символы
* gmailr:::base64url_decode_to_char является единственным, который прекрасно работает в моем случае

 Смежные вопросы

  • Нет связанных вопросов^_^