04.05.06
Un charset adecuado permite el posicionamiento de caracteres especiales
Una reciente investigación para el desarrollo y optimización de páginas donde los caracteres no corresponden a los convencionales, ej.: “chino” debemos hacer uso de la apropiada codificación para que los buscadores y navegadores consigan interpretar los textos.Este informe tiene muchos términos técnicos, con lo cual su lectura es apropiada solo para especializado en el desarrollo web.
Codificación.
Charset |
Alias |
Descripción |
BIG5 |
950 |
Chino tradicional |
GB2312 |
936 |
Chino simplificado |
También puede utilizarse el charset UTF-8, que corresponde a ASCII compatible con muti-byte 8 bit Unicode
Aplicando estos códigos podremos ver los mismos caracteres de una palabra tanto desde el explorador web como el código HTML de la página.
Bases de datos.
Es otro de los factores que deben tenerse en cuenta ya que no son los mismos los códigos que observamos desde el explorador con los que se almacenan dentro los registros.
Para almacenar los contenidos en una base de datos Mysql, podemos optar por una de las siguientes opciones:
- Crear las tablas de la base con el charset adecuado
CREATE TABLE `family` (
`name` varchar(100) NOT NULL,
`savings` decimal(3,2) NOT NULL default ‘0.00′,
`dob` date NOT NULL default ‘0000-00-00′,
PRIMARY KEY (`name`),
UNIQUE KEY `name` (`name`)
) TYPE=InnoDB CHARACTER SET utf8
- Almacenar los datos como entidades HTML y luego convertir el código a UTF-8 antes de mostrar la página.
En el segundo caso debemos contar con una función que permita traducir entidades HTML a código UTF-8; dicha conversión puede realizarse desde el mismo PHP con la función html_entity_decode.
Después de varias pruebas e investigaciones encontramos (“gracias a Google”) que esta función tiene algunos bugs para las versiones anteriores a PHP5. Por este motivo os recomendamos utilizar una función de traducción que reemplace a html_entity_decode y permita convertir una entidad HTML a su correspondiente codificación en UTF-8.