2013-07-07 5 views
0

Я работаю над очисткой электронных писем, прежде чем они будут сохранены в базе данных. Сообщение fandango было отправлено как закодированное как 4 (цитируемый-печатный). Вот часть сообщения без декодирования ...PHP quoted_printable_decode не работает над текстовыми сообщениями Fandango plain/text

= 0A = 0A = A0 = 0AJohn = 0A (800) 123-4567 = 0A = 0A ----- Forwarded Message =

= 20 = 0ASent: = 20Thursday, = 20July = 204 = 202013 = 204: 14 = 20PM = 0ASubject: = 20Your = 20Despicab =

ле = 20Me = 202 = 20iTunes = 20Download = 0A = 20 = 0A = 0A = 0ADespicable = 20Me = 202 = 20 = 0A = 20 = 20 = 0A = 20Your = 20purchase = 20 =

из = 20tickets = 20for = 20Despicable = 20Me = 202 = 20has = 20earned = 20you = 20а = 20complimentary = 20download = 20of = 20t =

он = 20song = 20'Just = 20а = 20Cloud = 20Away '= 20by = 20Pharrell = 20from = 20the = 20Original = 20Motion = 20Picture = 20So =

undtrack = 20on = 20iTunes. = 20 = 0AWe = 20hope = 20you = 20enjoy = 20the = 20song = 20and = 20the = 20film! = 0AIf = 20you = 20ha =

ве = 20iTunes = 20installed = 20click = 20here = 20to = 20start = 20your = 20complimentary = 20download. = 0AIF = 20 =

ВАС = 20DO = 20NOT = 20HAVE = 20iTunes = 20INSTALLED:. = 0A = 0A1 = 20Download = 20iTunes = 20for = 20Mac = 20or = 20Window =

с, = 20Free = 20of = 20charge = 20at = 20www.iTunes.com . = 20 = 0A2. = 20Open = 20iTunes = 20and = 20click = 20iTunes = 20Sto =

повторно. = 20 = 0A3. = 20Click = 20Redeem = 20under = 20для = 20Links. = 20 = 0A4. = 20Enter = 20the = 20code = 20below = 20Your = 20 =

скачать = 20will = 20start = 20immediately = 20Enjoy = 20 = 0ADownload = 20Code:... = 20FML6H34XXTMJ = 20 = 0AC =

Но когда я использую quoted_printable_decode() по переменной он не создает текст.


Этот URL имеет декодер, который работает, хотя и в ASP/VB ...

http://www.motobit.com/util/quoted-printable-decoder.asp

Я предполагаю, что код здесь уместно ...

http://www.motobit.com/tips/detpg_quoted-printable-decode/

Он правильно декодирует HTML-код для печати. Надеюсь, это поможет кому-то, кто пытается мне помочь. Я уверен, что я не единственный, кто столкнулся с прерванными кавычками для печати сообщений электронной почты.

ответ

0

Похоже, что в закодированной строке, указанной в кавычки, есть пробелы. Вероятно, это вызывает проблему - если она действительно цитируется - печатается, чем закодированная строка не должна содержать пробелов. Пробелы = 20 в кавычках для печати. Если вы используете функцию замены (например,PHP str_replace), чтобы заменить пробелы в закодированной строке значением = 20, тогда вы получите следующую закодированную строку с кавычками:

John = 0D = 0A (800) = 20123-4567 = 0D = 0A = 0D = 0A ----- = 20Forwarded = 20Message = 20

Затем эту строку можно декодировать с помощью функции PHP quoted_printable_decode() PHP.

+0

Ну, что, кажется, движется меня в правильном направлении. Вы видите что-нибудь еще? Я обновил свой вопрос с большей частью содержимого электронной почты. Я думал о том, чтобы просто перевести его вручную, я не хочу тратить три дня на эту проблему в одиночку. Дай мне знать, спасибо! – John

0

Если вы скопировали закодированный текст с кавычками, указанный выше, в файл, запустите следующий скрипт PHP (который читает текст с цитируемым текстом из файла, избавляется от пробелов, используя функцию str_replace, а затем декодирует цитируемый -printable текст с помощью функции quoted_printable_decode), вы увидите, что она производит правильный декодированного вывод:

<? 
$filename="./qp.txt"; 
$file = fopen($filename,"r"); 
$qp = fread($file,filesize($filename)); 
fclose($file); 

$qp=str_replace(" ", "", $qp); 
print "<plaintext>";  
print quoted_printable_decode($qp); 
?>