Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Problem z kodowaniem JSON
sebekzosw
post 13.08.2012, 16:32:40
Post #1





Grupa: Zarejestrowani
Postów: 437
Pomógł: 42
Dołączył: 16.04.2007

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
klocu
post 13.08.2012, 16:37:21
Post #2





Grupa: Zarejestrowani
Postów: 291
Pomógł: 45
Dołączył: 21.08.2007

Ostrzeżenie: (0%)
-----


To nie problem - to ficzer wink.gif
Po odkodowaniu będzie dobrze - zwyczajnie znaki "specjalne" są zamieniane na numeryczny zapis znaku w unicode.
Go to the top of the page
+Quote Post
sebekzosw
post 13.08.2012, 16:55:39
Post #3





Grupa: Zarejestrowani
Postów: 437
Pomógł: 42
Dołączył: 16.04.2007

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
klocu
post 13.08.2012, 17:00:27
Post #4





Grupa: Zarejestrowani
Postów: 291
Pomógł: 45
Dołączył: 21.08.2007

Ostrzeżenie: (0%)
-----


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


Ten post edytował klocu 13.08.2012, 17:09:23
Go to the top of the page
+Quote Post
sebekzosw
post 13.08.2012, 17:10:04
Post #5





Grupa: Zarejestrowani
Postów: 437
Pomógł: 42
Dołączył: 16.04.2007

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 15:59