Ver Mensaje Individual
  #6 (permalink)  
Antiguo 31/08/2011, 06:41
Avatar de Uncontroled_Duck
Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 13 años
Puntos: 261
Respuesta: UTF8 en aplicación

Pues la verdad es que desconozco si SQL tiene alguna función para codificar los carácteres en las consultas (me atrevería a decir que no). Pero hasta la fecha, y por lo que se plantea muchas veces en el foro, esto se soluciona como he comentado.

Como comentas, es correcta la consulta que realiza ahora mismo, pues se codifica en las dos direcciones.

Por ejemplo:
Guardas Páco a través del form.
En la base de datos se guarda Páco
Al consultar con PHP vuelve a codificar y muestra Páco
Pero si consultas directamente a la DB mostrará Páco

Con la función de PHP, como comentaba, sería de la siguiente forma:
Del form recibimos la variable
Código PHP:
Ver original
  1. // Variable recibida
  2. $_POST['name'] = 'Páco';
  3.  
  4. // La pasamos por la función
  5. $name = utf8_decode($_POST['name']);
  6.  
  7. // Realizas las validaciones pertinentes
  8. // La variable $name se pasa al INSER INTO

Al consultar con PHP se hace de forma similar.
Código PHP:
Ver original
  1. // Codificamos las variables del array
  2. $query = "SELECT bla bla bla"
  3. $result = mysql_query($query);
  4. $row = mysql_fetch_array($result);
  5. // Edito: Había puesto decode tambien, es encode...
  6. $codificada = utf8_encode($row['name']);
  7. $echo $codificada;
Esto debería mostrar Páco, que es el valor que está en la Db

Si revisamos la DB, podemos ver que ha guardado el valor tal cual se escribió. Y si se hace una consulta directamente a la db, mostrará el valor real que en la db, que será Páco.

No se si es exactamente lo que buscas, pero me temo que van por ahí los tiros.

Un saludo,
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight

Última edición por Uncontroled_Duck; 31/08/2011 a las 11:36