Cześć!

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:

  1. mysql_connect($sqlhost, $sqlusername, $sqlpassword) or die("I couldn't connect to the database!");
  2. mysql_query( "SET CHARACTER SET utf8");
  3. mysql_select_db($sqldb) or die("I couldn't find the database!");