Конференция "Сети" » Как представить тему письма в нормальном виде? [D7, WinXP]
 
  • JanMihail (15.06.08 10:56) [0]
    Узнаю при помощи POP3 тему письма, а мне выходит такая строка
    ?koi8-r?B?98vPztTBy9TFLtLV?= <admin@vkontakte.ru>

    Как мне представить эту строку в нормальном виде?
  • Anatoly Podgoretsky © (15.06.08 11:37) [1]
    > JanMihail  (15.06.2008 10:56:00)  [0]

    Как правило библиотека имеет функции раскодирования, смотри описание твоей библиотеки, если описания нет, то изучай ее исходники.
  • JanMihail (15.06.08 15:21) [2]
    Решил проблему. Если у кого-то возникала такая проблема, то поможет такая функция:

    //Использование функции
    //AMsg типа TIdMessage предварительно инициализированная
     KoiToWin(AMsg.From.Address);
     KoiToWin(AMsg.Subject);




    function KoiToWin(Str: string): string;
    var
     i, j, index, x1, x2 : Integer;
     sTemp               : String;
    begin
     Result := '';

     sTemp := Str;

     x1 := Pos('=?koi8-r?B?', sTemp);

     if x1 = 0 then
       x1 := Pos('=?KOI8-R?B?', sTemp);

     x2 := Pos('?=', sTemp);

     if (x2 - x1 > 0) and (x1 <> 0) and (x2 <> 0) then
     begin
       Str := copy(sTemp, x1 + 11, x2 - (x1 + 11));
       Str := TIdDecoderMIME.DecodeString(Str);

       for i := 1 to Length(Str) do
       begin
         index := -1;
         for j := Low(Win) to High(Win) do
           if Koi[j] = Str[i] then
           begin
             index := j;
             Break;
           end;

         if index = -1 then
           Result := Result + Str[i]
         else
           Result := Result + Win[index];
       end;

       delete(sTemp, x1, x2 - x1 + 2);
       insert(Result, sTemp, x1);
     end;

     Result := sTemp;
    end;

  • JanMihail (15.06.08 15:22) [3]
    Чуть не забыл. Два глобальных массива

    var
     Koi: array[0..66] of Char = (
       'T', 'Ё', 'ё', 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ж',
       'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р',
       'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ',
       'Ы', 'Ь', 'Э', 'Ю', 'Я', 'а', 'б', 'в', 'г', 'д',
       'е', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о',
       'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш',
       'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я');

     Win: array[0..66] of Char = (
       'ё', 'Ё', 'T', 'ю', 'а', 'б', 'ц', 'д', 'е', 'ф',
       'г', 'х', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п',
       'я', 'р', 'с', 'т', 'у', 'ж', 'в', 'ь', 'ы', 'з',
       'ш', 'э', 'щ', 'ч', 'ъ', 'Ю', 'А', 'Б', 'Ц', 'Д',
       'Е', 'Ф', 'Г', 'Х', 'И', 'Й', 'К', 'Л', 'М', 'Н',
       'О', 'П', 'Я', 'Р', 'С', 'Т', 'У', 'Ж', 'В', 'Ь',
       'Ы', 'З', 'Ш', 'Э', 'Щ', 'Ч', 'Ъ');

  • Hero © (16.06.08 04:21) [4]
    [2]

    спасибо! Как раз кстати
 
Конференция "Сети" » Как представить тему письма в нормальном виде? [D7, WinXP]
Есть новые Нет новых   [134432   +19][b:0][p:0.002]