Dzień dobry,
Mam taki dziwny kłopot z komponentami TREST.... Otrzymuję odpowiedź od serwera z danymi, ale one są zakodowane w UTF-8. No i wyświetla mi się sieczka w postaci kodów \u017 itp. Jak to poprawnie wyświetlić. Pomoże ktoś?
Kodowanie znaków w TRESTClient/TRESTRequest/TRESTResponse
- Rejestracja: dni
- Ostatnio: dni
- Postów: 297
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Silesia/Marki
- Postów: 5549
Hm, ciekawe. Jeśli dobrze pamietam to utf 8 jest kompatybilny z ASCII wiec 17 znak jest zwyczajnie niedrukowalny
- Rejestracja: dni
- Ostatnio: dni
- Postów: 297
Sorry. Zwracam honor. tam jest \u017c. Jak się ma kiepski wzrok, to tak bywa. :)
Te kody, to są polskie znaki. To jest akurat ż.
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Tuchów
- Postów: 12269
@Buster: napisz konkretnie co się dzieje i czego oczekujesz.
Jeśli masz problem z kodowaniem, to przekonwertuj ciąg znaków z UTF-8 do WideString (sprawdź w ogóle czym jest String w Twoim Delphi, bo stare używały AnsiString, a nowsze UnicodeString). Natomiast jeśli problemem jest to, że ciąg znaków zawiera sekwencje escapowane (czyli wspomniane \u017c jest sześcioznakową zawartością łańcucha), to musisz sobie przeparsować ten ciąg i pozamieniać to na odpowiednie znaki.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 297
Właśnie chodziło mi o samo kodowanie. W PHP jak pobierałem dane, to wszystko ładnie się pobierało i wyświetlało. Natomiast w Delphi dostałem drobną sieczkę z tymi sekwencjami escapowanymi. A używam Delphi 10.4
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Tuchów
- Postów: 12269
System.UTF8ToString — powinno się nadać.
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Zielona Góra
według tej strony https://www.fileformat.info/info/unicode/char/017c/index.htm znak U+017C jest (wydaje mi się) zakodowany w UTF-16

- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Tuchów
- Postów: 12269
Buster napisał(a):
Niestety. Nie działa. Hmmm.
To nie jest sensowny opis problemu. Po drugie, nadal nie wiadomo czy ciąg znaków zawiera znaki escapowane, czy masz problem z wyświetlaniem ciągu znaków. Tak więc albo opisz problem sensownie i wyjaśnij konkretnie na czym polegają błędy, albo się z nimi zaprzyjaźnij.
- Rejestracja: dni
- Ostatnio: dni
Czy przypadkiem w dokumentacji tego REST'a nie powiedziano jaśnie i wyraźnie że zwraca on JSon'a?