Ver Mensaje Individual
  #9 (permalink)  
Antiguo 31/07/2010, 03:55
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

Como te decía, son cuestiones de estándares, no lo puse en el anterior post pero debería incluirse también el idioma de la página web.
Como sabrás, las comunicaciones entre "máquinas" se hace en binario, nuestra web pasa de texto a unos y ceros y después esos unos y ceros vuelven a caracteres. al especificar en la cabecera ese utf-8 pasa la codificación a binario en "bloques" de 8 bits (variable en el caso del utf-8 que va de 1 a 4 bytes) y también le dice que cuando al vuelva a "montar" lo haga tomando el binario en bloques de 8 bits, pero que algunos caracteres están representados por hasta 4 bytes.

Eso no tiene que ver con como se guardan en la base de datos los caracteres, ya que bien puedes usar un juego de caracteres checos en la misma, o chinos. Con SET NAMES le dices cual es la codificación de la base de datos. Es nuestro caso coindide, pero no necesariamente tiene porqué coincidir.

Así, si tienes tu documento en UTF8 y no le dices que lea la base en UTF8, la acabará leyendo en ANSI, que usa los 8 bits de su byte para representar los 256 caracteres posibles, y solo 8. Así una "á" leida de una base de datos codificada utf8 y leída en Ansi se muestra como dos caracteres, ya que en la base ocupa 16 bits y si no especificamos como leerla nos la leerá en bloques de 8 bits. El documento se seguirá mostrando en UTF8, pero el error se produce en la lectura de la base, no al mostrar los caracteres en pantalla.

Kike

Son dos cosas independientes. [URL="http://www.w3c.es/divulgacion/guiasbreves/internacionalizacion"]Aquí[/URL] puedes ver una breve explicación sobre internacionalización de documentos según el W3C