in base alla mia esperienza questo succede quando:

le variabili vengono inviate con un charset, e vengono lette con un altro charset.

da quello che dici, mi sembra che invii i dati con un ISO-8859-1 ad esempio, è poi le leggi con utf-8.