Есть такая проблема, а точнее 2 проблемы,
- Параметры POST / Get запросов, если это русский текст, превращаются в кракозябры при парсинге запроса. То есть
1aRequestInfo.Params.Text = ' Ð Ñ'#$0083'Ñ'#$0081'Ñ'#$0081'кий паÑ'#$0080'амеÑ'#$0082'Ñ'#$0080 '
Видно, что это UTF, поэтому нам понадобится следующая функция UtfToAnsi, например такая
12345678910111213141516171819202122232425262728293031323334353637function TRP.ConvertUtf8ToAnsi(const Source: string): string;varIterator, SourceLength, FChar, NChar: Integer;beginResult := '';Iterator := 0;SourceLength := Length(Source);while Iterator < SourceLength dobeginInc(Iterator);FChar := Ord(Source[Iterator]);if FChar >= $80 thenbeginInc(Iterator);if Iterator > SourceLength thenbreak;FChar := FChar and $3F;if (FChar and $20) <> 0 thenbeginFChar := FChar and $1F;NChar := Ord(Source[Iterator]);if (NChar and $C0) <> $80 thenbreak;FChar := (FChar shl 6) or (NChar and $3F);Inc(Iterator);if Iterator > SourceLength thenbreak;end;NChar := Ord(Source[Iterator]);if (NChar and $C0) <> $80 thenbreak;Result := Result + WideChar((FChar shl 6) or (NChar and $3F));endelseResult := Result + WideChar(FChar);end;end;
Применение она имеет следующее
1aRequestInfo.Params.Text := ConvertUtf8ToAnsi(aRequestInfo.Params.Text); - Есть ещё одна проблема. При попытке ответить русским текстом имеем ту же проблему, приходят кракозябры, ну здесь проще, правим ответ сервера вот так…
1FAResponseInfo.ContentType := 'application/json; charset=utf-8';
Огромное спасибо форуму.