Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Перекодировка символов HTML-страницы


Автор: Alex_bochkov 12.3.2007, 09:35
С помощью idHTTP получаю HTML страницу с сайта через SSL.
Русские буквы заменены кодами типа: "&# 1051;&# 1077;&# 1089;&# 1086;"
Как их преобразовать к нормальному виду?

Автор: Snowy 12.3.2007, 11:29
Код рисовать времени нет.
Нарисую алгоритм.
1. Выделяешь строку &# 1051;
2. Из неё выделяешь цыферу - 1051
3. C полученным числом выполняешь такое волшебное преобразование:
Код

function DecodeChr(st: string): string;
var
  i:  integer;
  s:  string;
  w:  WideChar;
begin
  i := StrToIntDef(st, 0);
  s := chr(lo(i)) + chr(hi(i));
  Move(s[1], w, 2);
  result := w;
end;

Вобщем основная твоя задача - вытащить эти цыферы.
Механизм декодирования я привёл.
Пример:
Код
procedure TForm1.Button1Click(Sender: TObject);
var s: string;
begin
  s := DecodeChr('1051');
  s := s + DecodeChr('1077');
  s := s + DecodeChr('1089');
  s := s + DecodeChr('1086');
  ShowMessage(s);
end;

Автор: Alex_bochkov 12.3.2007, 12:27
Спасибо! Работает!
 smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)