Qué es Unicode UTF-8


UTF-8 (Unicode Transformation Format-8) es un formato de codificación de caracteres, en el que cada caracter es representado por un octeto (8 bits). También existen UTF-16 y UTF-32. La ventaja de UTF-8 respecto a estos otros es que es compatible con versiones anteriores de ASCII.

Unicode está reemplazando al código ASCII ya que permite a los usuarios gestionar todos los lenguajes del planeta además de símbolos matemáticos que simplifican el intercambio de información científica.
Para usar utf-8 en nuestros documentos se deberá especificar que se quiere usar este formato de codificación de forma explícita, en documentos de tipo HTML, XML, etc si no lo hacemos es posible que veamos caracteres extraños al abrirlos con el navegador.
Para usar este formato de codificación en páginas web HTML debemos escribir la siguiente instrucción en los encabezados del documento:
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">

En un archivo XML:
<?xml version="1.0" encoding="UTF-8" ?>

En los archivos de configuración del servidor Apache (httpd.conf) o en un archivo .htaccess
AddDefaultCharset UTF-8

En scripts PHP
<? header("content-type: text/html; charset: utf-8"); ?>


Tabla UTF-8

La tabla UTF-8 completa (o mapa de caracteres UTF-8), como os podéis imaginar, ocupa un gran tamaño.
Para representar caracteres UTF-8 en HTML se puede hacer de la siguiente forma: Si miramos en la tabla y queremos traducir el caracter U+00C6 (Æ) que está en hexadecimal, debemos pasarlo a decimal: 00C6 = 198 (esta conversión la podemos hacer con la misma calculadora de Windows) y escribirlo así:
&#198;


Ventajas

  • UTF-8 permite codificar cualquier carácter Unicode.
  • Fácil identificación. Es posible identificar claramente una muestra de datos como UTF-8 mediante un sencillo algoritmo. La probabilidad de una identificación correcta aumenta con el tamaño de la muestra.
  • UTF-8 ahorrará espacio de almacenamiento para textos en caracteres latinos, donde los caracteres incluidos en US-ASCII son comunes, cuando se compara con otros formatos como UTF-16.
  • Una secuencia de bytes para un carácter jamás será parte de una secuencia más larga de otro carácter por contener información de sincronización.
  • Al ser compatible con US-ASCII se puede utilizar en shell scripts y en llamadas a procedimientos que esperan strings terminados en bytes nulos.
  • No es necesario el uso del Byte order mask ya que UTF-8 trabaja con bytes y no palabras.

Desventajas

  • UTF-8 utiliza símbolos de longitud variable; eso significa que diferentes caracteres pueden codificarse con distinto número de bytes. Es necesario recorrer la cadena desde el inicio para encontrar el carácter que ocupa una determinada posición.
  • Los caracteres ideográficos usan 3 bytes en UTF-8, pero sólo 2 en UTF-16. Así, los textos chinos, japoneses o coreanos ocupan más espacio cuando se representan en UTF-8.
  • UTF-8 ofrece peor rendimiento que UTF-16 y UTF-32 en cuanto a carga computacional.

Entradas que pueden interesarte