Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/09/2008, 11:07
Avatar de ArrauKano
ArrauKano
 
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago
Mensajes: 664
Antigüedad: 22 años
Puntos: 4
Zend Form y Zend DB no se llevan bien

Mi consulta es un problema que tal vez ya sea común, pero no logro dar con una solución en Zend Framework.

Estoy haciendo un manejador de datos para una pequeña tienda. Por lo tanto, debo registrar a los clientes y demás datos asociados.

Entonces tengo mi clase Modelo, y en mi Controlador tengo un "crearFormulario()".
El problema es que cuando el nombre del cliente tiene caracteres acentuados, los rescata mal de la BD, por ejemplo, si hago algo tan simple como esto:

Código PHP:
        $db Zend_Registry::get('core_db');
        
$sql 'SELECT * FROM tabla WHERE id_cliente = 1324';
        
$result $db->fetchRow($sql);
        
var_dump($result); 
Me retorna la cadena, pero los acentos me salen con un caracter de inválido (Por ejemplo, el apellido: Mons�lvez).

--
El problema gravísimo, es que cuando pego ese valor en un formulario, de esta manera:

Código PHP:
    $form->costumerName->setValue(
        
$costumerInfo->name
    
); 
Luego el valor aparece en blanco en la vista. Ni siquiera aparece la cadena con el caracter invalido tal como si lo imprimiera directo en pantalla. Lo curioso es que si pongo directamente

Código PHP:
    $form->costumerName->setValue(
        
'ñoño'
    
); 
Se ve perfecto, y si copio/pego el nombre de la persona, como aparece en el navegador si lo imprimo directo, así:


Código PHP:
    $form->costumerName->setValue(
        
'Mons�lvez'
    
); 
También aparece la cadena (con el caracter inválido, pero al menos aparece).

¿QUE HAGO?

La idea es ojalá, no tener que tocar el servidor, porque si alguna vez quisiera usar la aplicación en un hosting, seguramente no voy a poder modificar el php.ini ni la configuración de la BD.

En mi vista uso explícitamente UTF-8 (tanto en la codificación del archivo fuente como en el tag html), en la base de datos también uso utf-8, en TODOS los campos de cadena, incluso las tablas las creé directamente como utf-8.

¿Alguna idea?
__________________
Blog | Tecnosquad