Od trzech dni walczę z PHP 5.2 i MySQL 5.0.27 i za nic nie mogę uzyskać kodowania UTF-8 w bazie
Przeryłem dokumentację PHP i MySQL, przekopałem fora i nic. Nie mogę przenieść istniejącego serwisu z PHP 4.4.4 i MySQL 4.1.22. Zamiast ogonków mam znaki zapytania.
W MySQL 5 wszystkie kodowania mam ustawione na UTF-8, collation też. Zresztą takie same ustawienia mam w MySQL 4 i tam działa, ale tylko z PHP 4.
Najwyraźniej jest to wina samego PHP 5, a dokładnie biblioteki [tt]libmysql.dll[/tt], która domyślnie skompilowana jest do obsługi strony kodowej latin1 (wg
MySQL Installation Notes w manualu PHP). Próbowałem różnych wersji tej biblioteki (np. z
http://dev.mysql.com/downloads/connector/php/) i zawsze to samo.
Efekt jest taki, że znaki w UTF-8 w bazie są zapisywane w ANSI, czyli przy użyciu dwóch bajtów. To działa w przypadku nowej instalacji MODx, ale 1) to jest kicha, a nie rozwiązanie i 2) nie działa z zaimportowanymi bazami kodowanymi w UTF-8.
Czy ktoś ma [tt]libmysql.dll[/tt] dla PHP 5 z obsługą UTF-8? Czy ktomuś udało się rozwiązać ten problem?