![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Кодирование темы в письме e-mail [D7, WinXP]
Sicilla © (2005-01-22 12:38:00)Добрый день! В начале каждого письма e-mail есть header. В данном случае такой:
Subject: =?Windows-1251?B?0OXq6+Ds4Dogz87Ew87SzsLIzCDB29HS0M4gyCDKwNfF0dLCxc3NziDKIMLb0dLA?=
=?Windows-1251?B?wsrFIMggz9DOzM7AytbI38whISEh?=
MIME-Version: 1.0
Content-Type: text/plain; charset=Windows-1251
Content-Transfer-Encoding: 8bit
Как я понимаю subject закодирован 8bit кодом. Как мне его можно раскодировать? Заранее спасибо
Anatoly Podgoretsky (2005-01-23 19:59:00) [1]subject это не base64.
Sicilla (2005-01-23 19:52:00) [2]Если subject как base64, то
const
Codes64 = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/';
function Encode64(S: string): string;
var
i: Integer;
a: Integer;
x: Integer;
b: Integer;
begin
Result := '';
a := 0;
b := 0;
for i := 1 to Length(s) do
begin
x := Ord(s[i]);
b := b * 256 + x;
a := a + 8;
while a >= 6 do
begin
a := a - 6;
x := b div (1 shl a);
b := b mod (1 shl a);
Result := Result + Codes64[x + 1];
end;
end;
if a > 0 then
begin
x := b shl (6 - a);
Result := Result + Codes64[x + 1];
end;
end;
function Decode64(S: string): string;
var
i: Integer;
a: Integer;
x: Integer;
b: Integer;
begin
Result := '';
a := 0;
b := 0;
for i := 1 to Length(s) do
begin
x := Pos(s[i], codes64) - 1;
if x >= 0 then
begin
b := b * 64 + x;
a := a + 6;
if a >= 8 then
begin
a := a - 8;
x := b shr a;
b := b mod (1 shl a);
x := x mod 256;
Result := Result + chr(x);
end;
end
else
Exit;
end;
end;
почему-то не работает.
Anatoly Podgoretsky (2005-01-22 13:53:00) [3]Style © (22.01.05 13:45) [3]
Это транспортная упаковка, чтобы данные могли проходить через 7 битные каналы. Кодировка при этом не меняется. И то также и не шифровка.
Style (2005-01-22 13:45:00) [4]
> упаковкаBase64
Я бы сказал, что это тоже кодировка :) В моем понимании слово упаковка - это уменьшение размера, а ни его увеличение :)))
Anatoly Podgoretsky (2005-01-22 13:07:00) [5]Кодировка 1251, упаковка Base64
palva (2005-01-22 12:48:00) [6]> Как я понимаю subject закодирован 8bit кодом. Как мне его можно раскодировать? Заранее спасибо
Нет. 'Content-Transfer-Encoding: 8bit' относится к тому, что будет дальше, а Subject закодирован Base64. Наверно, тип кодировки указывает буква B между вопросительными знаками. Но здесь я не уверен.