Problémom je kódovanie, v ktorom komunikuješ s databázou. Keďže si myslí, že s ňou komunikuješ v kódovaní, ktoré nepozná znaky s diakritikou, nahradí ich otáznikmi.
Keď použitím funkcie mysql_set_charset nastavíš kódovanie cp1250 (pre Windows-1250), resp latin2 (pre ISO-8859-2), mohlo by to fungovať.
Základom je samozrejme vedieť, kde máš aké kódovanie. Ak máš napr. pre tabuľky nastavené kódovanie, ktoré nezvláda diakritiku, tak nech nastavíš pre komunikáciu s databázou ľubovoľné kódovanie, nemôžeš očakávať, že z nej nejakú diakritiku dostaneš. Takže v prvom rade by bolo dobré overiť, aké máš nastavené kódovanie v tabuľkách (napr. pomocou show create table meno_tabulky alebo show table status from meno_db where name='meno_tabulky').
V súčasnosti je pre web najlepšou voľbou kódovanie UTF-8.