Расшифруйте смешную ISO кодировку сообщения электронной почты - PullRequest
2 голосов
/ 02 сентября 2011

У меня есть тело электронной почты (буфер char [], полученный через POP3), оно, очевидно, использует некоторую разметку для кодовых страниц ISO, например, тема как

Daß ißt ään schlümmer Test

кодируется как

=?iso-8859-1?Q?Da=DF_i=DFt_=E4=E4n_schl=FCmmer_TDest

Есть ли что-то готовое, что я могу использовать, чтобы превратить это в (читабельный) CStringW?

(Среда: Win32, C ++, VC2008.)

1 Ответ

4 голосов
/ 03 сентября 2011

Этот формат называется encoded-word и определяется как RFC 2047 . Форма имеет вид =?<charset>?<Q or B>?<encoded data>?=, где данные кодируются либо как base-64 (B), либо как что-то, что выглядит как цитируемый для печати (Q), но не совсем (потому что _ означает пробел).

Некоторые пример C ++ декодеры приведут вас к байтовой строке. Затем вам придется декодировать, используя кодировку, чтобы получить строку Unicode.

...