Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem ze znakami specjalnymi utf-8
Forum PHP.pl > Forum > PHP
mb83
witam,
napisałem stronkę, która pobiera wydarzenia z FB i zapisuje je do bazy SQL.
To wszystko dzieje się w standardzie utf-8.
Problem zaczyna się gdy chce je wyświetlić na stronie z latin2 (chodzi o znaczki np. "♛ STUDENT NIGHT ♛ IMPREZA STUDENCKA ♛ STUDENCI WSTĘP FREE ♛" czyli te korony i inne udziwnienia w tytułach czy opisach wydarzeń).
Wszystkie znaki specjalne utf-8 są traktowane jako krzaczki, nie pomaga htmlentites czy htmlspecialchars.
czego użyć aby te znaki wyświetlały się poprawnie na stronie w latin2?
ps. niestety nie ma opcji aby stronę przekonwertować na utf-8.
bialko0019
No a czekaj, pobierając z fb na jakimś test.php pojawiają Ci się poprawnie? Ustaw w kolumnie w bazie kodowanie utf8_general_ci ;-) A może w bazie jest dobrze wyświetlane, np. w phpmyAdmin, tylko na stronie źle?
com
jeśli tych znaków w latin2 nie ma to ich itak nie wyświetlisz, możesz próbować wstawić jako znaczek utfa ale to już zabawa w przetwarzanie tego. Tylko prawda jest taka, że inne kodowanie niż utf-8 nie jest już używane nigdzie.
mb83
no a jednak się da :-)

  1. function ues($str){
  2. $working = json_encode($str);
  3. $working = preg_replace('/\\\u([0-9a-z]{4})/', '&#x$1;', $working);
  4. return json_decode($working);
  5. }


Powyższy kod zamienia '♛' na '♛' a więc wyświetla udziwniane znaki unicode w latin2.
Co prawda znaki polskie też (ą, ę, itp) ale to już bez znaczenia :-)
com
No zrobiłeś dokładnie to o czym napisałem wink.gif
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.