| | | |

Especial UTF-8 (I)

El UTF-8 es un tipo de codificación de caracteres para Unicode que nos permite escribir nuestras páginas web y no preocuparnos por si se va a ver correctamente o van a aparecer caracteres extraños.

Las veces que he trabajado en proyectos multilenguaje es lo que hemos usado, salvo en el caso de japonés y coreano que es preferible usar el UTF-16 porque ocupa menos espacio. Eso ha hecho que me haya acostumbrado a realizar siempre los proyectos en UTF-8 y así evitar luego los problemas que puedan surgir en futuras actualizaciones o en testeos y tener luego que cambiar todo el proyecto a UTF-8.

Es necesario que cada parte del proyecto use la codificación UTF-8, no vale únicamente con escribir la páginas HTML en UTF-8, porque, por ejemplo, si obtenemos los datos de la BD en otra codificación puede haber problemas a la hora de mostrarlos. Los cambios necesarios serían los siguientes:

  • En MySQL es necesario que la codificación de sistema, de la base de datos y de las tablas sea UTF-8.
    El sistema solo se puede cambiar de codificación cuando se recompila, pero si se puede arrancar con UTF-8:

    > mysqld --character-set-server=utf8

    Las bases de datos se deben crear con la codificación UTF-8:

    CREATE DATABASE nombre_bd CHARACTER SET utf8

    Y por último crear las tablas en la misma codificación:

    CREATE TABLE nombre_tabla (lista_columnas)
    CHARACTER SET utf8
  • En PHP se debería modificar en el archivo php.ini el valor de default_charset, aunque este valor se obvia si ya viene dado en el Content-Type y es mejor no indicarlo:
    default_charset = "utf-8"
  • En Apache se debe modificar el fichero .htaccess para indicar que el tipo de codificación por defecto sea UTF-8:
    AddDefaultCharset UTF-8
  • En HTML se debe indicar en el Content-Type:
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
  • Y por último en un XML se debe añadir el encoding:
    <?xml version="1.0" encoding="UTF-8" ?>

ASCII, Unicode, UTF-8 y la Iñtërnâçiônàlizæçiøn – parte I (juque).

Pasando WordPress de ISO-8859-1 a UTF-8 (genbeta).

Microsiervos en UTF-8 / Wiki de de Blogs en UTF-8 (Microsiervos).

¡UTF-8 vale la pena! (minid).

Similar Posts