Send the page that includes the form in utf8 since some browsers write it back in the charset they recieved the data regardless what you tell them with accept-charset. Put a hidden field in the post request, that ensures you what charset you expect to get back . Use the Accept-charset attribute in your forms. check your hidden field and convert the recieved data back to utf8 if needed. Use Post requests.