antes que anda gracias cachusan por responder..
1) concuerdo respecto a la limpieza. Pero en vista de que eliminar todo caracter especial puede resultar inconveniente para el sentido de lo que haya escrito el usuario..
2) me hiciste ver que estaba en un error. Nunca designe un maxchar a los inputs sino que limitaba el largo del registro en la base forzosamente a lo que necesitaba, algo sin sentido..
Probare dando un largo mayor al registro y limitando el input. Luego el caracter no valido, lo transforme con alguna funcion como la de arriba..
encontre un buen articulo sobre todo esto aqui:
Limpiar y validad que quizas a alguno le sirva..
saludos y gracias!
(El articulo que nombre es en ingles..)