Pobrałem stronę przy użyciu curl, chcę wyświetlić informacje i pojawia się problem. Np. zamiast "ł" mam \u0142. Jak to pozamieniać? Można niby strtr(), ale tworzenie tabeli dla całego Unicode, to chyba niezbyt dobry pomysł. Jest coś lepszego?
dla czego dla całego Unicode? wystarczy dla tylko dla polskich znaków
Problem w tym, że na stronie pojawiają się też inne znaki. W każdym razie, jeśli nie ma jakiejś gotowej funkcji, to będę to musiał zrobić.
ale wystarczy że zamieniasz tylko te, które są niewłaściwie wyświetlane, czyli polskie
Nie wiadomo o co dokładnie chodzi, ale spróbuj potraktować pobraną strone funkcja
UTF8Decode();
Badź iconv.
Niewłaściwie są wyświetlane polskie i do tego pełno innych (cyrylica, arabski itd.).
Mam takie coś:
preg_replace("/\\\u{0,65535}/", "&#x\\1;", $str);
tylko, że działa źle. Przykład:
"Wroc\u0142aw" zamienia na "Wroc&#x;0142aw" - średnik powinien być wstawiony po znalezionym ciągu, a nie odwrotnie. Jak to zmienić.
Udało mi się to rozwiązać, wrzucam, bo może się komuś przyda.
preg_replace("/\\\u([0-9]{4})/", '&#x\\1;', $str); //w $str jest strona
PS. Dzięki za zainteresowanie.
Poprawka:
preg_replace("/\\\u([0-9a-f]{4})/", '&#x\\1;', $str); //w $str jest strona
Teraz działa jak powinno.