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ś?
Hm, ciekawe. Jeśli dobrze pamietam to utf 8 jest kompatybilny z ASCII wiec 17 znak jest zwyczajnie niedrukowalny
Sorry. Zwracam honor. tam jest \u017c. Jak się ma kiepski wzrok, to tak bywa. :)
Te kody, to są polskie znaki. To jest akurat ż.
@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.
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
System.UTF8ToString — powinno się nadać.
Niestety. Nie działa. Hmmm.
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
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.
Czy przypadkiem w dokumentacji tego REST'a nie powiedziano jaśnie i wyraźnie że zwraca on JSon'a?
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. :)