Ok. Więc sprawa wygląda tak - kluczem jest byś w samej bazie utrzymał odpowiednie kodowanie bez krzaczków (w moim przypadku problem był taki, że w bazie miałem ok, ale na stronę wyrzucało się wszystko błędnie).
Ja rozwiązałem to w taki sposób. Zrobiłem eksport bazy do Latin2 (system porównywania znaków całej bazy i tabel też taki utrzymałem). Jeśli masz latin1 swedish (bo to standardowy jest, to wystarczy wejść do struktury tabel i w "operacjach" zmienić na latin2 - zajmie Ci to moment).
Zatem jak już wyeksportujesz bazę, która ma kodowanie latin2 do pliku, to na nowym serwerze tworzysz bazę, gdzie system porównywania znaków będzie identyczny - czyli latin2 (ja mam dalej general_ci). Samo kodowanie całej bazy mi akurat nie robiło różnicy (albo utf8, albo latin2 - miałem na active24 i na home.pl).
Spróbuj to zrobić taką metodą i zobaczymy co będzie. Jeśli wszystko pójdzie ok i w bazie będziesz miał polskie znaki, zaś na stronie nie, to przy łączeniu się z bazą dodaj wpis: mysql_query("SET NAMES latin2");, dzięki któremu wszystkie znaki będą konwertowane w momencie eksportu na stronę.
A, jeśli powyższe kroki nie zadziałają, to zrób małe doświadczenie i najpierw pzenieś samą strukturę bazy, a potem dopiero jej zawartość - czasem (przynajmniej ja się z tym spotkałem) ma to znaczenie.