Zmiana kodowania znaków w pliku JSON za pomocą PHP

0

Hej,
Mam takie pytanie zaczynam przygodę z PHP i chciałem pobawić danymi z pliku JSON i napotkałem pewien problem. W pliku polskie litery są zakodowane w następujący sposób:

"\u00c3\u00b3"

Próbowałem użyć utf8_decode() ale nie daje to pożądanego efektu, i zacząłem sie zastanawiać jak to zrobić żeby wyświetlić poprawnie te dane.
Z góry dzięki za jakieś wskazówki.

2

Pokaz jak to dekodujesz i opisz jak wyświetlasz te dane.

0

Od razu to powinienem wstawić, sorki ;)

<? php
$jsonFileContent = file_get_contents('./test.json');
$array = json_decode($jsonFileContent, true);
print_r($array["participants"][1]["name"]);

i próbowałem zanim przypisze sobie do $array użyć funkcji utf8_decode ale nic sie nie działo :/

1

Daj jeszcze, jeśli to możliwe chociaż 2 linijki z tego pliku json.

0
{
  "participants": [
    {
      "name": "Jan Pikusa"
    },
    {
      "name": "Tom W\u00c3\u00b3jcik"
    }
  ],
  "messages": [
    {
      "sender_name": "Tom W\u00c3\u00b3jcik",
      "timestamp_ms": 1611462517399,
      "content": "No a jak \u00f0\u009f\u0098\u0083",
      "type": "Generic",
      "is_unsent": false
    },
    {
      "sender_name": "Jan Pikusa",
      "timestamp_ms": 1611450627564,
      "content": "Ale fart mrrrr\u00e2\u009d\u00a4\u00ef\u00b8\u008f",
      "type": "Share",
      "is_unsent": false
    }
  ]}
2

Może tutaj znajdziesz podpowiedź:
https://www.forumweb.pl/php/polskie-znaki-json,94952
Pytanie też, czy sam tworzysz plik z którego korzystasz. Ja kiedyś wczytując dane z pliku tekstowego rtf napisałem sobie funkcję po prostu zmieniającą znaki - co może nie jest najpiękniejszym rozwiązaniem, ale działa. Natomiast jakiś czas temu do kodowania/dekodowania użyłem tych opcji dodatkowych właśnie i działało fajnie. Niestety już nie pamiętam jak to dokładnie było, ani linku lepszego nie mogę znaleźć do rozwiązania tego problemu. Ale jak dobrze przeszukasz hasła w ramach pierwszej strony wyszukiwania w googlach to powinieneś trafić na podobne rozwiązanie. Tylko nie pamiętam za nic jaką frazę wtedy w google wpisywałem.

4

Spróbuj

$array = mb_convert_encoding(json_decode($jsonFileContent, true), 'Windows-1252', 'UTF-8');

Powinno być OK https://ideone.com/GmPn47

0

Panowie WIELKIE dzięki, jak zwykle szybka i fachowa pomoc!
Teraz wszystko działa jak natura chciała :D

temat do zamknięcie

1 użytkowników online, w tym zalogowanych: 0, gości: 1