Kodowanie znaków w TRESTClient/TRESTRequest/TRESTResponse

Kodowanie znaków w TRESTClient/TRESTRequest/TRESTResponse
BU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 297
0

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ś?

KamilAdam
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Silesia/Marki
  • Postów: 5549
0

Hm, ciekawe. Jeśli dobrze pamietam to utf 8 jest kompatybilny z ASCII wiec 17 znak jest zwyczajnie niedrukowalny

BU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 297
1

Sorry. Zwracam honor. tam jest \u017c. Jak się ma kiepski wzrok, to tak bywa. :)
Te kody, to są polskie znaki. To jest akurat ż.

flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12269
1

@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.

BU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 297
0

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

flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12269
1

System.UTF8ToString — powinno się nadać.

BU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 297
0

Niestety. Nie działa. Hmmm.

robertz68
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Zielona Góra
1

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
msedge_mla1PGqEji.png

flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12269
0
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.

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
0

Czy przypadkiem w dokumentacji tego REST'a nie powiedziano jaśnie i wyraźnie że zwraca on JSon'a?

BU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 297
0

Temat generalnie do zamknięcia. Działa wszystko w porządku. Jak już sparsowałem JSON-a, to wyświetla prawidłowo z polskimi znakami. :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.