Ver Mensaje Individual
  #7 (permalink)  
Antiguo 30/07/2010, 14:41
kikerobles
 
Fecha de Ingreso: mayo-2010
Mensajes: 7
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Extraño error con acentos y eñes

Pues a eso quizá pueda responder yo mismo, ya que me he estado mirando unas cuantas cosillas.
Por cierto, he puesto el SET NAMES en la función que me realiza la conexión a la base de datos y ya funcionan las dos igual. Sigo con el misterio, pero supongo que será una de esas cosas de la informática que vuelven a uno loco y no tienen una explicación fácil. Y no creo que merezca la pena matarse con ello.

Al crear un php enlazado a una base de datos especificas una serie de datos, algunos pueden omitirse y depende del navegador, servidor, y versiones funcionará como quieres o no, pero cada dato es distinto y necesario:
  • Al navegador que tipo de documento es:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML........ para que sepa como tratarlo y que nivel de estándares debe respetar, aunque luego el IE haga lo que le venga en gana.
  • También le especificas que conjunto de caracteres debe enviar el servidor al cliente:<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Antes no se podían mostrar caracteres de diferentes idiomas en una web, con esta declaración abres el abanico de caracteres que se muestran. El utf-8 usa 8 bits para los caracteres, de forma que además de los ANSI engloba el resto de codificaciones en una sola.
  • Creas una base de datos y le dices el "formato" en que guardará los datos: Cotejamiento utf8-unicode-ci por ejemplo.
  • Pero cuando trabajas con un lenguaje que va a gestionar esa base de datos, debes especificarle también como relacionarse con ella, y entre este tipo de especificaciones está la de decirle que envíe y reciba los caracteres en utf-8: mysql_query ("SET NAMES 'utf8'");

Cada instrucción va destinada a distintos receptores, y de ahí que pueda parecer redundante.

Espero que sea así, después de leer tanto, lo he esquematizado todo y espero no haberme dejado nada importante que de lugar a dudas o errores de concepto