It does not happen in just one place, it always happens in the communication between two ends. That could be in the communication between browser<->php or php<->mysql
You should make sure to have a charset meta tag in your html header, something like:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
That way, your web browser knows what charset to use when posting data to your server (and what charset to use when rendering your page).
When connecting to mysql, you should make sure that your connection is speaking the same charset at both ends, and that should be the same charset as the web browser is using:
mysql_query('set names utf8');
Now, you should be fine.