Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem z kodowaniem JSON
Forum PHP.pl > Forum > Przedszkole
sebekzosw
Witam,

mam taki fragment skryptu:

  1. $_POST['data'] = $sql->html($_POST['data']);
  2. $form['data']['settings'] = array_merge($settings, $_POST['data']);
  3. pre($form['data']['settings']);
  4. echo json_encode($form['data']['settings']);


w źródle po przesłaniu formularza dostaje taki wynik:

  1. <pre>Array
  2. (
  3. [cmsTitle] => łóżćńę
  4. [cmsKeywords] => tworzenie stron www
  5. [cmsDescription] => Autorski system zarzu0105dzania treu015bciu0105
  6. [cmsURLPage] => <a href="http://localhost/!/" target="_blank">http://localhost/!/</a>
  7. [cmsTemplate] => default
  8. [cmsMeil] => meil@gmail.com
  9. [cmsStatus] => 1
  10. [cmsStatusInfo] =>
  11. [cmsDefaultRang] => 1
  12. [cmsDefaultPage] => 1
  13. )
  14. </pre>{"cmsTitle":"\u0142\u00f3\u017c\u0107\u0144\u0119","cmsKeywords":"tworzenie stron www","cmsDescription":"Autorski system zarzu0105dzania treu015bciu0105","cmsURLPage":"http:\/\/localhost\/!\/","cmsTemplate":"default","cmsMeil":"meil@gmail.com","cmsStatus":"1","cmsStatusInfo":"","cmsDefaultRang":"1","cmsDefaultPage":"1"}


i zamiast łóżćńę otrzymuje w JSON \u0142\u00f3\u017c\u0107\u0144\u0119


Jak rozwiązać problem? Kodowanie bazy i wszystkich plików to UTF-8
klocu
To nie problem - to ficzer wink.gif
Po odkodowaniu będzie dobrze - zwyczajnie znaki "specjalne" są zamieniane na numeryczny zapis znaku w unicode.
sebekzosw
hmmm, nie do końca.




a w bazie wpis wygląda trochę inaczej:

  1. {"cmsTitle":"u0142u00f3u017cu0107u0144u0119","cmsKeywords":"tworzenie stron www","cmsDescription":"fdfdfd","cmsURLPage":"http://localhost/!/","cmsTemplate":"default","cmsMeil":"meil@gmail.com","cmsStatus":"1","cmsStatusInfo":"","cmsDefaultRang":"1","cmsDefaultPage":"1"}


w bazie z tytułu usuwa mi \ z ciągu - u0142u00f3u017cu0107u0144u0119... dlatego pokazuje jako normalny tekst
klocu
Bo w czasie dodawania do bazy coś szamie ci backsleszyki.
A tym czymś zapewne jest stripslashes - używasz gdzieś przy zapisie?

Pierwszy post:
Cytat
{"cmsTitle":"\u0142\u00f3\u017c\u0107\u0144\u0119","cmsKeywords":"tworzenie stron www","cmsDescription":"Autorski system zarzu0105dzania treu015bciu0105","cmsURLPage":"http:\/\/localhost\/!\/", ...}


Drugi post:
Cytat
{"cmsTitle":"u0142u00f3u017cu0107u0144u0119","cmsKeywords":"tworzenie stron www","cmsDescription":"fdfdfd","cmsURLPage":"http://localhost/!/", ...}


--
Nim dane lecą do json_encode to ten sam numer załatwia ci coś tutaj
Cytat
Autorski system zarzu0105dzania treu015bciu0105
sebekzosw
dziękuję za pomoc. zostałem nakierowany w pewien sposób. Podczas pobierania danych z bazy przy generowaniu tablicy używam stripslashes dlatego mi się to usuwa. Problem rozwiązałem za pomocą dodania zamienienia \ na podwójny za pomocą str_replace
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.