Laden...

RestClient (RestSharp): Umlaute werden nicht korrekt übertragen

Erstellt von fungi35 vor 7 Jahren Letzter Beitrag vor 7 Jahren 2.280 Views
F
fungi35 Themenstarter:in
42 Beiträge seit 2015
vor 7 Jahren
RestClient (RestSharp): Umlaute werden nicht korrekt übertragen

Hallo Leute,

ich schreibe gerade ein Outlook-Addin welches osTicket mit Tickets versorgt. Hierzu habe ich auf github das Projekt "OsTicket.API-master" gefunden (ein c#-Wrapper für die osTicket-API).

Die Übertragung der E-Mails ins Ticketsystem funktioniert auch schon recht gut, nur die Umlaute wollen noch nicht: Aus ß wird Ã, aus ö wird ö, usw.

Ich habe schon versucht das Encoding dem JSON-Serializer sowie dem RestClient zu übergeben, beides brachte bisher keinen Erfolg:


            RestClient client = new RestClient(OsTicketUrl) { Encoding = Encoding.UTF8 };

            IRestRequest request = new RestRequest("/api/tickets.json", Method.POST);
            request.JsonSerializer = new RestSharp.Serializers.NetwonsoftJsonSerializer();
            request.JsonSerializer.ContentType = "application/json; charset=utf-8";
            request.AddHeader("X-API-KEY", ApiKey);
            request.RequestFormat = DataFormat.Json;

            TicketDTO ticketDTO = TicketDTO.CreateFromTicket(ticket);
            JObject jo = JObject.FromObject(ticketDTO);
            foreach (KeyValuePair<string, object> pair in ticket.ExtraFields)
            {
                jo.Add(pair.Key, JToken.FromObject(pair.Value));
            }

            request.AddBody(jo);

            IRestResponse response = client.Execute(request);

            if (response.StatusCode == HttpStatusCode.Created)
            {
                return int.Parse(response.Content);
            }
            else
            {
                throw new Exception(response.Content);
            }

Habt Ihr einen Tipp für mich was ich noch falsch mache/vergessen habe?

Gruß fungi

16.842 Beiträge seit 2008
vor 7 Jahren

Mal versucht ob es ohne RestSharp geht?
Wenn ja, dann liegt es wohl an RestSharp.

RestSharp ist ja Open Source, also dort dann einen Issue erstellen.
https://github.com/restsharp/RestSharp
Alternativ selbst den Fehler finden, fixen und nen Push Request stellen 😉

Ich versteh aber nicht ganz, wieso Du das Json selbst zusammen baust.
Bau Dir doch ein Json DTO, das Du dann im gesamten Serialisierst. Du gibst Du die Serialisierungsverantwortung ab und musst es nicht selbst machen.