![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 98 Pomógł: 0 Dołączył: 19.03.2015 Ostrzeżenie: (0%) ![]() ![]() |
Zrobiłem sobie skrypt który przetwarza pola formularza w tablicę JSON. Problem w tym że wynik pracy funkcji json_encode() niszczy polskie znaki np w zamiast "ędward ącki " wpisuje mi " \u0118dward \u0104cki ". WYdaje mi sięże to problem z tą funkcja gdyż gdy wydrukowałem sobie tablicę post ( print_r($_POST) ) to w tej tablicy znaki są polskie i nie ma zadnego problemu a język mam nastawiony na polski a kodowanie na tuf8 na stronie czyli <html lang="pl-PL"> i
<head> <meta charset="utf8" /> </head> Proszę o sugestię i z góry dzięki za odpowiedź |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
A dlaczego twierdzisz, że niszczy? Próbowałeś odkodować taki ciąg znaków?
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 98 Pomógł: 0 Dołączył: 19.03.2015 Ostrzeżenie: (0%) ![]() ![]() |
Próbowałęm funkcją utf8_encode('ciąg JSON z jscon_encode') ale nie było żadnej różnicy.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Na pewno nie encode i na pewno nie utf8_encode.
-------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 98 Pomógł: 0 Dołączył: 19.03.2015 Ostrzeżenie: (0%) ![]() ![]() |
NIe wiem czy dobrze zrozumiemałem , ale............tutaj potrzebne jest uzyskanie danych w formacie >> JSON << ( które uwzględni polskie znaki ) a nie ponownie dekodowanie ich do formatu tablicy php. W tym jest problem.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
1. Do formatu tablicy ich nie zdekodujesz, bo nie kodowałeś tablicy.
2. Polskie znaki są poprawnie zakodowane. 3. Czytaj dokumentację. Cytat Note:
Like the reference JSON encoder, json_encode() will generate JSON that is a simple value (that is, neither an object nor an array) if given a string, integer, float or boolean as an input value. -------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 98 Pomógł: 0 Dołączył: 19.03.2015 Ostrzeżenie: (0%) ![]() ![]() |
Możliwe że....rzeczywiście problemem nie jest więc json_encode. ALe od początku - owszem kodowałem tablicę. System działa tak że tablica post zawierająca pola z danymi jest zamieniana tablice JSON Tak wiem ,że tablica JSON jeśli nie zostanie zdekodowana przez PHP nie jest obsługiwana jako tablica ale nie o to chodzi , celem jest ciąg JSON tego typu { "pole1": "zawartość " , "pole2" :"zawartość" } . Te ciągi JSON następnie są zapisywane w bazie danych po to by sterować systemem strony. Póki co na razie głównym odbiorcą tego są skrypty php które.....te ciągi JSON z bazy odbierają > następnie dekodują przez json_decode() > następnie używają ( np do sterowania slaiderami ) i....tam gdzie powinny być polskie litery ich nie ma ( po zdekodowaniu przez json_decode() !). Na szczęście ten zapis jest manualny i mogę podmienić ręcznie wygenerowany kod JSON przed zapisem do bazy tak by był tam polskie litery i wtedy działa ok. Tylko to zabiera czas a chciałbym to zrobić z automatu. Najwyżej się przemęczę wypisze sobie przez JSON_encode wszystkie polskie litery i zrobię skrypt który je wstawi w odpowiednie miejsce ale....może można zrobic to prościej jakoś
![]() |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
JSON jest zawsze stringiem a nie tablicą. Struktura http://json.org
Twoim problemem jest zapewne brak prawidłowego kodowania przy zapisie do bazy (SET NAMES). -------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
W stringu, który podałeś są zakodowane polskie znaki. Fragment kodu PHP, który ja podałem, odkodowuje je poprawnie.
-------------------- |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 279 Pomógł: 42 Dołączył: 10.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 00:35 |