decode quoted-printable text
How can I decode a 'quoted-printable' text in rebol ? Thanks !!
posted by: LM 7-Jun-2016/5:08:48-7:00
This is an overly simplistic approach that works in Rebol 2 though is broken in Rebol 3 (due to DEHEX being broken): dehex replace/all replace/all quoted-printable-string "%" "=25" "=" "%"
posted by: Chris 7-Jun-2016/13:52:15-7:00
Here's a Rebol 2 function for that. R E B O L [ Title: "decode-quoted-printable" File: %decode-quoted-printable.r Author: "Brett Handley" web: http://www.codeconscious.com Date: 25-Aug-2002 Purpose: "Decodes text that has been encode using the quoted printable method." ] decode-quoted-printable: function [ "Decodes quoted-printable encoded data." data [string! binary!] ] [decoded-data hex-rep data-char hex-char ws-char ordinary-char] [ decoded-data: hex-rep: data-char: none hex-char: charset "0123456789ABCDEFabcdef" ws-char: charset {^- } ordinary-char: complement charset [] ; Ignoring illegal characters for the moment. if parse/all data [ (decoded-data: copy #{}) some [ "=3D" (insert tail decoded-data #"=") | "=20" (insert tail decoded-data #" ") | "=^/" | "=0A" (insert tail decoded-data #"^/") | [copy hex-rep ["=" 2 hex-char] (insert tail decoded-data dehex head change hex-rep #"%")] | ; Ignore linespace at the end of the line - it must have been added by an MTA see RFC 2045 some ws-char copy data-char [CRLF | newline] (insert tail decoded-data data-char) | copy data-char ordinary-char (insert tail decoded-data data-char) ] | end ] [to-string decoded-data] ]
posted by: Brett 8-Jun-2016/17:44:14-7:00
|