Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2015, 14:38   #11
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,777
По умолчанию

Подвоха нет, Delphi всю работу делает за тебя. Костыли больше не нужны, говорю же. Можешь посмотреть в ассемблерном подстрочнике, какие библиотечные процедуры вызываются при присваивании строк друг другу. Они и делают фактическую перекодировку.

Добавь еще KOI8String = type AnsiString(20866), и будет тебе счастье.
Vapaamies на форуме Ответить с цитированием
Старый 08.06.2015, 15:37   #12
eclipse_99
Пользователь
 
Регистрация: 10.12.2010
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Vapaamies Посмотреть сообщение
Подвоха нет, Delphi всю работу делает за тебя.
Хм... А что делать с тем, что при загрузке письма с почты (письмо в виде html страницы) WebBrowser отображает эту страницу с кириллическими буквами в виде квадратов?

eclipse_99 вне форума Ответить с цитированием
Старый 08.06.2015, 16:52   #13
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,777
По умолчанию

Скорее всего, старая версия IE, используемая компонентом TWebBrowser, не поддерживает веб-шрифты.
Vapaamies на форуме Ответить с цитированием
Старый 10.06.2015, 18:47   #14
eclipse_99
Пользователь
 
Регистрация: 10.12.2010
Сообщений: 10
По умолчанию

Добрые люди подсказали с UTF8Encode

Код:
function StringToUTF8Encode(const s:string):string;
begin
    result:= Stringof(Tencoding.UTF8.GetBytes(s))
end;
http://www.delphikingdom.ru/asp/answ...IDAnswer=82969

И с HTML страничками в письме тоже разобрался! Сначала ищем есть или нет в теле письма TidText, а уже потом сохраняем эти странички и отображаем в браузере отдельно, а не само IdMessage.Body.text. Примерно по такому типу:

Код:
for i:=0 to MessMail.MessageParts.Count-1 do
  with MessMail.MessageParts do
    if items[i].ClassType=TIdAttachmentFile then

Последний раз редактировалось Stilet; 11.06.2015 в 10:27.
eclipse_99 вне форума Ответить с цитированием
Старый 11.06.2015, 00:50   #15
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,777
По умолчанию

Цитата:
Сообщение от eclipse_99 Посмотреть сообщение
Добрые люди подсказали с UTF8Encode
Это тоже быдлокод. В ответах на "Королевстве Delphi" вам прозрачно на это намекали, но вы упорно продолжаете играть в угадайку и гнуть свою линию. А мы вам в няньки не нанимались. Не хотите описать задачу и разобраться от и до -- шаманьте дальше, вам же от этого хуже будет.
Vapaamies на форуме Ответить с цитированием
Старый 11.06.2015, 09:20   #16
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

Код:
/// //////////////////////////////////////////////////////////////////
function myUTF8ToString(aStr: String): string;
// uses System.NetEncoding
var
  Data: TEncoding;
  StrArray: TBytes;
begin
  Data := TEncoding.Create;
  try
    try
      StrArray := BytesOf(aStr);
      Result := StringOf(Data.Convert(Data.UTF8, TEncoding.Default, StrArray));
    except
      Result := aStr;
    end;
  finally
    FreeAndNil(Data);
  end;
end;
/// //////////////////////////////////////////////////////////////////

function myStringToUTF8(aStr: String): string;
// uses System.NetEncoding
var
  Data: TEncoding;
  StrArray: TBytes;
begin
  Data := TEncoding.Create;
  try
    try
      StrArray := BytesOf(aStr);
      Result := StringOf(Data.Convert(Data.Default, TEncoding.UTF8, StrArray));
    except
      Result := aStr;
    end;
  finally
    FreeAndNil(Data);
  end;
end;
ZuBy вне форума Ответить с цитированием
Старый 11.06.2015, 16:35   #17
eclipse_99
Пользователь
 
Регистрация: 10.12.2010
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Vapaamies Посмотреть сообщение
Не хотите описать задачу и разобраться от и до -- шаманьте дальше, вам же от этого хуже будет.
Описал, по-моему, нормально. Чего непонятного? Так и спрашивал:-" как закорючки привести к нормальному виду?"
eclipse_99 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Embarcadero C++ и InterBase shredinger C/C++ Базы данных 2 02.06.2013 21:29
Embarcadero C++, C OpenCL DARTS C++ Builder 1 07.02.2013 22:18
линии в Embarcadero shanluu Софт 3 01.01.2011 20:43
Акция 2 за 1 от Embarcadero Квэнди Свободное общение 6 30.07.2009 11:16