Ver Mensaje Individual
  #8 (permalink)  
Antiguo 25/06/2014, 20:52
Avatar de Atomycko
Atomycko
 
Fecha de Ingreso: diciembre-2005
Ubicación: Zapopan Jal.
Mensajes: 92
Antigüedad: 18 años, 4 meses
Puntos: 12
Respuesta: problema eñes y tildes

Yo me encontre con ese problema alguna vez, y tuve que realizar algunas modificaciones pues estaba un poco desordenado, tenia archivos con codificacion ANSI y otros en UTF-8 y no recuerdo la codofocacion en la BD, creo era utf8_general_ci, y usaba el juego de caracteres ISO-8859-1 en HTML, bueno, la cosa es que lo primero que hice fue codifocar todos los archivos a UTF-8 y usar el mismo juego de caracteres en HTML y, para estar seguro, tambien en PHP en los encabezados "Content-Type: [text/html|text/javascript|etc.]; charset=UTF-8'", con eso solucionaba que me aparecieran caracteres como "ñ" o el rombo, pero no al guardar o extraer los datos en la BD, para eso tuve que codificar los datos antes de guardar y despues de extraer con utf8_decode/encode por medio de una funcion:

Código PHP:
<?php
function utf8_($modo, &$datos$return false){
    
$codificar = function($datos$modo$codificar){
        if(!
is_array($datos)){
            
$datos $modo == 'encode' utf8_encode($datos) : utf8_decode($datos);
        }
        else{
            foreach(
$datos as $ind => $val){
                
$datos[$ind] = $codificar($val$modo$codificar);
            }
        }
        return 
$datos;
    };
    if(
$return){
        return 
$codificar($datos$modo$codificar);
    }
    
$datos $codificar($datos$modo$codificar);
}
?>
Asi solo queda hacer:
Código PHP:
<?pnp
$datos 
$_POST['datos'];

// manejar datos antes de guardarlos

utf8_('decode'$datos);

// guardar datos

?>
Yo en lo personal uso una sola variable para los campos de un formulario, asi solo tendria que paras una sola vez la funcion.

Ahora para extraer:
Código PHP:
<?php

// llamada sql

while($datos MANEJADOR){
    
utf8_('encode'$datos);

    
// hacer algo
}
?>
Bueno asi resolvi ese problema y hoy lo sigo usando. Espero esto te sea de utilidad.

Saludos!
__________________
PD: Los acentos fueron secuestrados.