EmoArt
Publicar
Glosario

Punto de código (Codepoint) - la dirección de cada carácter en Unicode

Última actualización: 2026-05-19·Aprox. 3 min

Este artículo se lee en unos 3 minutos.

Cada carácter que puedes escribir, pegar o mostrar tiene una dirección única en Unicode llamada punto de código.Se escribe como U+ seguido de un número hexadecimal (por ejemplo, U+1F600 para 😀). Los puntos de código son la base de cómo los ordenadores almacenan y transmiten texto. Entenderlos te ayuda a depurar problemas con emoji, contar caracteres correctamente y escribir mejor código de manejo de texto.

Definición

Un punto de código es un valor numérico en el espacio de códigos Unicode (que va de U+0000 a U+10FFFF). Cada punto de código se asigna a exactamente un carácter abstracto. El espacio total permite 1.114.112 puntos de código posibles, de los cuales unos 150.000 están actualmente asignados.

Cómo leer un punto de código

La notación U+XXXX (o U+XXXXX para caracteres por encima del Plano Multilingüe Básico) usa dígitos hexadecimales:

  • U+0041 = A (letra latina mayúscula A)
  • U+3042 = あ (hiragana あ)
  • U+1F600 = 😀 (cara sonriente)
  • U+1F338 = 🌸 (flor de cerezo)

Los caracteres en el rango U+0000 a U+FFFF están en el Plano Multilingüe Básico (BMP). La mayoría de los emoji se encuentran por encima de U+FFFF, en el Plano Multilingüe Suplementario (SMP), por lo que requieren un tratamiento especial en algunos lenguajes de programación.

Punto de código vs. carácter vs. glifo

ConceptoQué esEjemplo
Punto de códigoEl número (dirección)U+1F600
CarácterEl concepto abstracto«Cara sonriente»
GlifoLa representación visual😀 (varía según la plataforma)

Por qué los puntos de código de emoji importan a los desarrolladores

Sorpresas con la longitud de cadenas

En JavaScript, "😀".length devuelve 2, no 1. Esto se debe a que las cadenas de JavaScript usan codificación UTF-16, y los emoji por encima de U+FFFF requieren un par sustituto (dos unidades de código de 16 bits). Para contar caracteres reales, usa:

  • [..."😀"].length → 1 (expandido en un array de puntos de código)
  • new Intl.Segmenter() para contar clústeres de grafemas

Almacenamiento en bases de datos

El charset utf8 de MySQL solo soporta hasta 3 bytes por carácter (solo BMP). Los emoji requieren 4 bytes, así que necesitas utf8mb4 para almacenarlos sin pérdida de datos. El tipo text de PostgreSQL maneja todo Unicode de forma nativa.

Expresiones regulares

Hacer coincidir emoji en regex requiere patrones con soporte Unicode. En JavaScript: /\p{Emoji}/u coincide con cualquier carácter emoji. Sin la bandera u, los pares sustitutos no coincidirán correctamente.

Cómo encontrar el punto de código de un carácter

  • DevTools del navegador: "🌸".codePointAt(0).toString(16) → "1f338"
  • Python: hex(ord("🌸")) → "0x1f338"
  • Línea de comandos: printf '%x\n' "'🌸"
  • En línea: Unicode Charts para explorar por bloque

Puntos de código en el arte con emoji

Al crear combinaciones de emoji, conocer los puntos de código te ayuda a:

  • Identificar por qué un carácter se muestra como un cuadrado vacío (punto de código no soportado)
  • Distinguir entre caracteres visualmente similares de bloques diferentes
  • Depurar problemas de copiar y pegar donde caracteres invisibles (ZWJ, selectores de variación) se eliminan
  • Calcular el «coste» real de una combinación en plataformas que cuentan puntos de código

Términos relacionados

¿Te resultó útil este artículo?