lo que yo haria seria crear una funcion que me convierta todo texto con acentos y caracteres especiales a un formato legible por web..
Código PHP:
function reem($texto1) {
//Rememplazamos caracteres especiales latinos minusculas
$find = array('á', 'é', 'í', 'ó', 'ú', 'ñ', '\"', '€', 'ü');
$repl = array('á', 'é', 'í', 'ó', 'ú', 'ñ', '"', '€', 'ü');
$texto1 = str_replace ($find, $repl, $texto1);
//Rememplazamos caracteres especiales latinos mayusculas
$find = array('Á', 'É', 'Í', 'Ó', 'Ú', 'Ñ', 'Ü', 'ç', 'Ç');
$repl = array('Á', 'É', 'Í', 'Ó', 'Ú', 'Ñ', 'Ü', 'ç', 'Ç');
$texto1 = str_replace ($find, $repl, $texto1);
return $texto1;
}
luego cuando voy a meter los datos a la BD le aplicaria
Código PHP:
if(isset($_POST['dato'])){
$dato=reem( $_POST['dato']);
$sql = "INSERT INTO $tabla (nombre)
VALUES ('".$dato."')";
mysql_query($sql,$conn) or die(mysql_error($conn));
con eso, introducirias en la BD un
á por
á... en la BD no aparecera así, pero al leer los datos de tu BD eb el HTML volvera a interpretarlo...
pruebalo