Witam

Głowię się nad pewną kwestią już dłuższy czas, korzystałem z internetu lecz za każdym razem miałem zły wynik.
Chciałbym zapisać JSON do pliku po czym go wczytać z pliku lecz gubi mi PL znaki.
Udało mi się zapisać ść do pliku lecz nie mogę ich odczytać.

Proszę o pomoc.

  1. // ZAPIS
  2.  
  3. $b = [
  4. "test" => "zwykly test",
  5. "ogonki" => "łśżźćąę"
  6. ];
  7.  
  8. $encoded = json_encode($b);
  9. var_dump($encoded); // context: "\u062c\u0645..."
  10.  
  11. $unescaped = preg_replace_callback('/\\\\u(\w{4})/', function ($matches) {
  12. return html_entity_decode('&#x' . $matches[1] . ';', ENT_COMPAT, 'UTF-8');
  13. }, $encoded);
  14.  
  15. var_dump($unescaped); // context is unescaped
  16. file_put_contents('data.json', $unescaped);
  17.  
  18.  
  19.  
  20.  
  21. // ODCZYT
  22.  
  23. $data = json_decode(utf8_encode(file_get_contents('data.json')));
  24.  
  25. echo "<pre>";
  26. print_r($data);
  27. echo "</pre>";
  28.  


Wygląda na to że przekombinowałem.

O dziwo działa coś takiego.

  1.  
  2.  
  3. //Zapis
  4.  
  5. $d = json_encode($b);
  6. file_put_contents('data.json', $d);
  7.  
  8. // odczyt
  9.  
  10. $data = json_decode(utf8_encode(file_get_contents('data.json')));
  11.  


Dziękuje za pomoc wszystkim którzy poświęcili czas po długim czasie jednak udało się znaleźć rozwiązanie metodą prób i błędów smile.gif