Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

кодировка при получении письма [D6]


it_work ©   (2006-05-01 09:10:00) 

Пишу маленькую библиотеку, которая должна читать письма и пихать их в файл.
Столкнулся с проблеммой кодировки
Использую в библиотеке tIDMessage
Так вот проблемма в том, что пока не могу понять как раскодировать тему, отправителя, тело письма.
Получаю то в таком виде:
=?koi8-r?Q?=F3=D4
ясно, что в кои8
то в рПЛБЪЩЧБЕФЪОБЛ П
то =?windows-1251?B?wu
Как бы все это автоматом определять и перекодировать?


it_work   (2006-05-05 09:42:00) [1]

Все, всем спасибо за советы, задача решена, по крайней мере на данный момент :))


it_work   (2006-05-05 06:13:00) [2]


> Если бы я работал с D6 то я бы попробовал:
> 1. Прочитать документацию и обратиться к нужной функции.
>
> 2. Найти в интернете другую программу раскодировки.
> 3. Написать свою программу.


Логично, но как-то не совсем тот совет, котырй я ожидал


palva   (2006-05-04 16:41:00) [3]

Если бы я работал с D6 то я бы попробовал:
1. Прочитать документацию и обратиться к нужной функции.
2. Найти в интернете другую программу раскодировки.
3. Написать свою программу.


it_work   (2006-05-04 12:16:00) [4]

народ, уже весь инет изрыл, неужели ни кто не знает, как решить проблемму?


it_work   (2006-05-04 09:21:00) [5]


> Но вам нужны функции, которые есть на вашем компьютере.
> Это вам надо поискать в хэлпах.

У меня 6-о1 делфи.
Есть TIdBase64Encoder и TIdBase64Decoder.
Можно ли их использовать?
Если нет, то в 6-ом какие можно использовать?
Предварительно со строкой что-нить делать надо (типа убирать ?windows-1251?B? и т.д.)?


palva   (2006-05-03 15:27:00) [6]

> что еще может быть кроме B
Может быть "Q", пример вы сами приводили. А вообще надо почитать стандарты rfc.

У меня D7, с ним идет Indy. Там есть функции перекодировки. Пример:

uses IdCoderMIME;
...
procedure TForm1.FormCreate(Sender: TObject);
var
 s: String;
 d: TIdDecoderMIME;
begin
 d := TIdDecoderMIME.Create(nil);
 s := 'z/Do4uXy8fLi8/4gwuDxIQ==';
 s := d.DecodeString(s);
 d.Free;
 Caption := s;
end;

Но вам нужны функции, которые есть на вашемкомпьютере. Это вам надо поискать в хэлпах.


it_work   (2006-05-03 14:07:00) [7]


> А что тут раскодировать? windows-1251 означает, что русская
> кодировка Windows-1251. Буква B означает, что байты представлены
> в кодировке Base64. Надо вытащить строку и применить соответствующие
> функции.

Самый главный вопрос : какие функции применять?
дополнительные вопросы: что еще может быть кроме B

Был бы не против увидеть пример

Заранее спасибо


palva   (2006-05-03 13:46:00) [8]

А что тут раскодировать? windows-1251 означает, что русская кодировка Windows-1251. Буква B означает, что байты представлены в кодировке Base64. Надо вытащить строку и применить соответствующие функции.


it_work   (2006-05-03 13:39:00) [9]


> > =?windows-1251?B?4OHi4+TluObn6Onq6+zt7u/w8fLz9PX29/j5/Pv6/f7/wMHCw8TFqMbH?
>
> > = =?windows-1251?B?yMnKy8zNzs/Q0dLT1NXW19jZ3Nva3d7f?=
>
> Mail Reader перевел как:
> абвгдеёжзийклмнопрстуфхцчшщьыъэюяАБВГДЕЁЖЗ ИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ
>

Я в курсе что там закодировано :))
Мне надо программно раскодировать


evvcom   (2006-05-03 13:22:00) [10]


> =?windows-1251?B?4OHi4+TluObn6Onq6+zt7u/w8fLz9PX29/j5/Pv6/f7/wMHCw8TFqMbH?
> = =?windows-1251?B?yMnKy8zNzs/Q0dLT1NXW19jZ3Nva3d7f?=

Mail Reader перевел как:
абвгдеёжзийклмнопрстуфхцчшщьыъэюяАБВГДЕЁЖЗ ИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ


it_work   (2006-05-03 11:31:00) [11]


> хуже бывает, когда когдировка не указана вообще или указана,
>  но неверно

и все же, как к примеру перевести в удобоваримый вид строку типа:
=?windows-1251?B?4OHi4+TluObn6Onq6+zt7u/w8fLz9PX29/j5/Pv6/f7/wMHCw8TFqMbH?= =?windows-1251?B?yMnKy8zNzs/Q0dLT1NXW19jZ3Nva3d7f?=
?


Desdechado   (2006-05-03 11:10:00) [12]

хуже бывает, когда когдировка не указана вообще или указана, но неверно


it_work   (2006-05-03 10:40:00) [13]

неужели ни кто не занимался этим?


it_work   (2006-05-02 12:56:00) [14]


> Пользуй UNICODE

где пользовать?
письма идут от разных клиентов под разной операционкой


Владимир   (2006-05-02 12:48:00) [15]

Пользуй UNICODE


it_work   (2006-05-02 11:50:00) [16]

и все же может кто-нить знает в чем проблемма?


it_work   (2006-05-02 06:35:00) [17]

если указать в tIDMessage кодировку, то ничего не меняется


Наверх

Титульная страница Поиск, карта сайта Написать письмо