Pracuję właśnie nad jednym projektem i mam duży problem z kodowaniem danych w bazie MySQL.
Użytkownik serwisu może podać swoje imię w formularzu html (kodowanie pliku: utf-8), które następnie przesyłane jest do serwera za pomocą jQuery.post() i odbierane przez plik PHP (kodowanie pliku: utf-8) i przekazywane do bazy MySQL (połączenia wraz z "SET NAMES UTF-8"), której kodowanie ustawione jest na utf-8_genera_ci. Inny plik PHP pobiera z bazy przesłaną informację i ją wyświetla - do tej pory wszystkie znaki specjalne są wyświetlane bezbłędnie.
Niestety, kiedy otworzę phpMyAdmin, w tabelach widzę krzaczki. Po eksporcie bazy do pliku CSV z ustawionym kodowaniem UTF-8 - widzę krzaczki.
W phpMyAdmin prawidłowo wyświetlają się tylko dane dodane bezpośrednio z menadżera, jednak te dane zamieniają się w krzaczki przy próbie wyświetlenia ich za pomocą skryptu PHP.
Zastanawiam się, gdzie robię błąd? Dlaczego dane nie zapisują się w formacie utf-8?
Przeglądałem forum, pytałem Google i jak do tej pory, nie znalazłem odpowiedzi.
=== kilka minut później ===
Zupełnie przypadkiem, udało mi się rozwiązać ten problem... - wystarczyło zastąpić, zresztą polecane na wszystkich forach, na które do tej pory natrafiłem, SET NAMES na SET CHARACTER SET. Mam nadzieję, że komuś się to rozwiązanie przyda.
Przykładowy kod: