procedure TForm1.Button1Click(Sender: TObject);
var
AJson: TJSONObject;
AJsonData: TJSONObject;
ARegisterIds:TJSONArray;
AData, AResponseContent:TSTringStream;
DeviceToken:String;
begin
ARegisterIds := TJSONArray.Create;
AJson := TJSONObject.Create;
try
DeviceToken := 't2uIvqpZ_o7u3sUxCBBAICxaRuj05mgHaGWY6x6Dwd3oYnwAEoSY5vl1BkcLzfLt4TPbNbFxr7WCKW5IictG_QCMTqSQ7QEp-mk-g9OG0CHaE5Rx01FT51Zc5om';
ARegisterIds.Add(DeviceToken);
AJsonData := TJSONObject.Create;
AJsonData.AddPair('id', ID.ToString());
ID := ID + 1;
AJsonData.AddPair('message', Edit1.Text);
AJson.AddPair('registration_ids', ARegisterIds);
AJson.AddPair('data', AJsonData);
IdHTTP1.Request.ContentType := 'application/json';
IdHTTP1.Request.CustomHeaders.AddValue('Authorization', 'key=AIzaSyBuYtgzrIE6Z-AQobRf1-taJOl6CdWUfL8');
AData := TStringStream.Create(AJson.ToString);
AData.Position := 0;
AResponseContent := TStringStream.Create('', TEncoding.UTF8);
IdHTTP1.Post('https://android.googleapis.com/gcm/send', AData, AResponseContent);
AResponseContent.Position := 0;
Memo1.Lines.Add(AResponseContent.DataString);
finally
end;
end;
до записи в AData которую потом пересылаю через IdHttp, в AJson все символы отображаются отлично.