Desde hace buen tiempo he venido trabajando con esta función para reemplazar caracteres especiales para guardar/imprimir registros de una base de datos mediante PHP. La funcion es esta:
Código PHP:
function reemplazar_caracteres($string) {
$busqueda = array("Á","É","Í","Ó","Ú","Ñ","á","é","í","ó","ú","ñ"," ","(",")","[","]","'",'"',"°","{","}","/",":",",",".",";","¡","!","¿","?","&","%","$","…","“","”","`","ü","|","*","<",">","\\","º","+","#","@","=","·","«","»","^","ç");
$reemplazo = array("A","E","I","O","U","N","a","e","i","o","u","n","-","","","","","","","","","","-","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","c");
return(str_replace($busqueda, $reemplazo, $string));
}
Me pasó algo parecido al momento de mostrar datos con caracteres especiales ya guardados con anterioridad, en algunos casos no reemplaza y en otros simplemente imprime este caracter: �
Como repito, cuando ejecuto la función en archivo PHP simple, trabaja perfecto, el problema está a la hora de trabajar con BD. Para añadir, los archivos PHP están codificados en utf-8 y la BD igual, tanto tablas como campos.
¿Alguna idea de lo que puede estar pasando?
Gracias de antemano por la ayuda.