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: 20 años, 10 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.