Рейтинг@Mail.ru
(Delphi) Кодировка русских символов в JSON | Программирование на Delphi и C#
Заметка

(Delphi) Кодировка русских символов в JSON

При парсинге JSON можно столкнуться с такой проблемой, что русские символы Delphi конвертирует в их числовой код. Например вместо слова «абвг» Вам вернётся «\u0430\u0431\u0432\u0433″.

Справиться с данной ситуацией нам поможет функция Convert, которую нам понадобится включить в свой проект.


Функция Convert:

function Convert(const InText: string): string;
var
  i, op: Integer;
  c: WideChar;
  t, n: string;
begin
  i := 1;
  op := 1;
  while PosEx('\u', InText, i) <> 0 do
  begin
    i := PosEx('\u', InText, i);
    t := t + Copy(InText, op, i - op);
    Inc(i, 2);
    n := Copy(InText, i, 4);
    op := i + 4;
    c := WideChar(StrToInt('$' + n));
    t := t + WideString(c);
  end;
  t := t + Copy(InText, op, Length(InText));
  Result := t;
end;

Использование функции:

var
  Str: string;
begin
  Str:=Convert(IdHTTP1.Post('http://site.ru', data));
  Memo1.Lines.Add(Str);
end;

После использования данной функции Вам будут возвращаться в исходном коде страницы русские символы.

Оставить комментарий   Вы должны быть авторизованы, что бы оставить комментарий.