En que los problemas puede que te los esté causando el PHP, entonces. Verifica que no te esté pasando las cadenas de texto como si fuesen códigos de
Me explico: HTML. Es
muy posible que al tomar los valores contenidos en el formulario, estos se estén pasando como códigos HTML, especialmente en los caracteres no alfabéticos, o en los alfabéticos superiores al ASCII 127. En estos casos, el form devuelve la secuencia de caracteres HTML que se usa para representarlos en las páginas web, por ejemplo,
" para representar las comillas (").
Para evitar esto, en PHP se usa
html_entity_decode(), que permite realizar la conversión entre el HTML y los caracteres normales, devolviendo el valor correcto.
Ahora bien, si el problema es que no aparecen con esas codificaciones, sino con caracteres que no se pueden reconocer o representar, entonces lo que tienes es un conflicto entre el CHARSET usado en la página y el CHARSET de la base. Dado ese caso lo que tienes que hacer es unificar con UTF8 ambos.