(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;
После использования данной функции Вам будут возвращаться в исходном коде страницы русские символы.
Оставить комментарий Вы должны быть авторизованы, что бы оставить комментарий.
