Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/09/2013, 23:06
Avatar de ZydRick
ZydRick
 
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 19 años, 3 meses
Puntos: 4
Problema reemplazando caracteres especiales

Buenas noches compañeros, les contaré el problema que tengo.

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));

La función venía trabajando perfectamente hasta hoy que he querido usarla en un proyecto nuevo. Si la uso en un archivo simple, funciona perfectamente, pero cuando la quiero usar en un script que uso para guardar datos en mi BD, no funciona. Por ejemplo, si mediante el formulario envío la palabra Informática, sólo guarda Inform en la BD.

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.