El punto de código es el número que Unicode da a cada carácter
Unicode es una tabla que asigna un número a cada carácter, y ese número se llama punto de código. La letra ñ es U+00F1 (241 en decimal), la A es U+0041 (65) y 😀 es U+1F600 (128512). El valor que sigue a U+ está en hexadecimal y se completa con ceros hasta tener al menos cuatro cifras. Los números van de U+0000 a U+10FFFF, en total 1.114.112, y Unicode 18.0, publicado en 2026, tiene asignados 172.808 caracteres.
Esta herramienta pone una casilla de texto y una de código una junto a la otra, y reescribe la contraria cada vez que editas una. El código puede escribirse en notación U+, como \u00F1 para JavaScript y JSON, \u{F1} para ES2015, \U0001F600 para Python, ñ y ñ para HTML, \F1 para CSS, o como número decimal o con 0x: nueve notaciones, y un valor pegado en cualquiera de ellas se reconoce y se descifra. La ficha de abajo muestra el nombre oficial, el bloque, la categoría general y la versión del carácter elegido, y el mapa del espacio de código enseña dónde está entre los 1.114.112 puntos de código.
Cuándo hay que mirar los puntos de código
Casi siempre no hace falta saber el número de un carácter. Hace falta cuando el texto se ve roto, cuando no puedes teclear un carácter en el código o cuando lo que ves no coincide con lo que se ha guardado.
- Una búsqueda que no encuentra «canción»: la ó puede ser un solo punto de código (U+00F3) o una o (U+006F) con una tilde combinante (U+0301). Se ven igual, pero en una comparación exacta o en una búsqueda sencilla pueden no coincidir, y lo mismo pasa con la ñ (U+00F1 frente a n más U+0303).
- Archivos de macOS: los nombres de archivo de un volumen HFS Plus se guardan totalmente descompuestos, de modo que «canción.pdf» puede estar formado por o más U+0301. Copiado a otro sistema, el nombre parece idéntico pero puede no coincidir al compararlo.
- Leer registros y respuestas de una API: un texto como
Espa\u00F1aen un registro del servidor o en una respuesta JSON no se lee a primera vista. Pégalo en la casilla de código y se convierte en España. - Símbolos en páginas web: un símbolo difícil de teclear va en HTML como
→(→) o en un valor content de CSS como"\2192". Cada lugar tiene su sintaxis, así que a menudo hay que reescribir un carácter en varias notaciones. - Límites de longitud y tamaño de almacenamiento: 👩💻 es un carácter visible, pero son 3 puntos de código, una longitud de 5 en JavaScript y 11 bytes en UTF-8. Según la unidad que cuente un límite de formulario o una columna de base de datos, el mismo texto pasa o se corta.
- Caracteres invisibles: un espacio de ancho cero (U+200B) escondido en un número de pedido o en una dirección copiados hace fallar la comparación y la búsqueda aunque se vean iguales. Una BOM (U+FEFF) al principio de un archivo puede quedar pegada al primer encabezado de un CSV y cambiarle el nombre.
- Cuadrados en lugar de caracteres: cuando un carácter se ve como un cuadrado (□) o un signo de interrogación, hay que distinguir entre un número sin asignar y un carácter añadido en una versión reciente que la fuente de tu dispositivo aún no tiene. El nombre y la línea Añadido en de la ficha ayudan.
Cómo se usa
- Escribe o pega caracteres en la casilla de texto y la de código muestra sus puntos de código. En sentido contrario, escribe
U+00F1,\u00F1oñen la casilla de código y los caracteres aparecen en la de texto. Separa varios valores con espacios o comas. - Elige uno de los botones de notación: U+, decimal, 0x, \u, \u{…}, Python, HTML hexadecimal, HTML decimal o CSS. Si la casilla de código contiene otra notación, el botón la reescribe en la que elijas, así que sirve también para pasar de una notación a otra.
- Con «Dejar el ASCII tal cual» activado, las notaciones con escape no tocan letras, cifras ni símbolos y solo convierten el resto. Desactívalo para escribir todos los caracteres como número. Los botones AB y ab fijan si los dígitos hexadecimales van en mayúsculas o minúsculas.
- Pulsa una celda de la tira de puntos de código para ver en la ficha su nombre, bloque, categoría, versión y diez valores. El botón de copiar al final de cada línea copia solo esa notación.
- Pulsa un plano o una celda del mapa del espacio de código, o los botones ‹ › de la ficha, para recorrer los vecinos. Con «Añadir a la casilla de texto» incorporas el carácter que quieras.
Nueve formas de escribir el mismo carácter
Un punto de código es un solo número, pero cada lugar donde se usa tiene su propia sintaxis. La tabla muestra la ñ (U+00F1) y 😀 (U+1F600) en cada notación. Como 😀 supera U+FFFF, algunas notaciones lo escriben de una pieza y otras lo parten en dos.
| Notación | ñ | 😀 | Dónde se usa |
|---|---|---|---|
| Notación U+ | U+00F1 | U+1F600 | Documentos de Unicode, tablas de caracteres y textos explicativos |
| Decimal | 241 | 128512 | Valores numéricos en programas (codePointAt de JavaScript, ord de Python) |
| Hexadecimal 0x | 0x00F1 | 0x1F600 | Constantes numéricas y arrays en C, Java y lenguajes parecidos |
| Escape \u | \u00F1 | \uD83D\uDE00 | Cadenas de JavaScript, JSON y Java (unidades UTF-16) |
| Escape \u{…} | \u{F1} | \u{1F600} | JavaScript desde ES2015 y cadenas de Rust y Swift |
| Python | \u00F1 | \U0001F600 | Cadenas de Python (\U lleva ocho cifras) |
| HTML hexadecimal | ñ | 😀 | Documentos HTML y XML |
| HTML decimal | ñ | 😀 | Documentos HTML y XML |
| CSS | \F1 | \1F600 | Valores content y selectores de CSS |
| Bytes UTF-8 | C3 B1 | F0 9F 98 80 | Los bytes reales en archivos y en la red |
| Unidades UTF-16 | 00F1 | D83D DE00 | La unidad con la que JavaScript, Java y Windows guardan el texto |
JSON y Java admiten exactamente cuatro cifras tras \u, así que un carácter por encima de U+FFFF se escribe como el par sustituto que se explica en la sección siguiente. Python distingue el \u de cuatro cifras del \U de ocho. CSS admite de una a seis cifras hexadecimales tras la barra invertida y cierra el escape con un único espacio si detrás viene una cifra hexadecimal o un espacio. Una referencia de carácter HTML se cierra con punto y coma. La herramienta entiende todas estas reglas al leer lo que pegas, así que un mismo texto puede mezclar escapes y referencias de caracteres. Los valores U+ y 0x solo se leen como lista separada por espacios o comas; si van mezclados con escapes se quedan como texto y la herramienta lo avisa. Las referencias numéricas HTML de € a Ÿ siguen el estándar HTML y se leen con la tabla Windows-1252 (– pasa a ser –).
Por qué 😀 se escribe con dos escapes, \uD83D\uDE00
UTF-16 guarda el texto en unidades de 16 bits. Con 16 bits solo se llega a U+FFFF, así que un punto de código mayor se escribe con dos valores de un rango reservado (U+D800 a U+DFFF) llamados sustitutos. Para 😀 (U+1F600) el cálculo es este.
- Resta 0x10000 al punto de código: 0x1F600 − 0x10000 = 0xF600.
- Divide los 20 bits restantes en los 10 de arriba y los 10 de abajo. En 0xF600, los 10 de arriba son 0x3D y los 10 de abajo son 0x200.
- Suma 0xD800 al valor de arriba y 0xDC00 al de abajo: 0xD800 + 0x3D = 0xD83D y 0xDC00 + 0x200 = 0xDE00.
| Carácter | Punto de código | UTF-16 (par sustituto) | Bytes UTF-8 |
|---|---|---|---|
| 😀 | U+1F600 | D83D DE00 | F0 9F 98 80 |
| 👍 | U+1F44D | D83D DC4D | F0 9F 91 8D |
| 𝄞 | U+1D11E | D834 DD1E | F0 9D 84 9E |
| 𠀀 | U+20000 | D840 DC00 | F0 A0 80 80 |
Por eso '😀'.length vale 2 en JavaScript y JSON escribe \uD83D\uDE00. Un sustituto alto (D800 a DBFF) debe ir seguido de uno bajo (DC00 a DFFF); uno suelto no es un carácter. La herramienta señala como error un valor sustituto como U+D800 o un \uD83D sin pareja.
Cuatro formas de contar caracteres
El número de caracteres depende de lo que se cuente. Lo que en pantalla parece un carácter es un grupo de grafemas, tal como lo define UAX #29. El recuento de puntos de código es la cantidad de números de Unicode, la longitud UTF-16 es el valor que devuelve length en JavaScript, y los bytes UTF-8 son el tamaño al guardar el texto en un archivo. Las cuatro casillas sobre la casilla de texto muestran estos valores.
| Texto | Caracteres visibles | Puntos de código | UTF-16 | Bytes UTF-8 | Qué cambia |
|---|---|---|---|---|---|
| A | 1 | 1 | 1 | 1 | Con ASCII los cuatro valores coinciden |
| ñ | 1 | 1 | 1 | 2 | Una letra latina con signo diacrítico ocupa 2 bytes en UTF-8 |
| € | 1 | 1 | 1 | 3 | El signo del euro ocupa 3 bytes pero una sola unidad UTF-16 |
| ñ (n + U+0303) | 1 | 2 | 2 | 3 | Una tilde combinante se pega a la letra anterior |
| 😀 | 1 | 1 | 2 | 4 | Supera U+FFFF, así que son dos unidades UTF-16 |
| 👍🏽 | 1 | 2 | 4 | 8 | Lleva pegado un modificador de tono de piel (U+1F3FD) |
| 🇪🇸 | 1 | 2 | 4 | 8 | Una bandera son dos letras indicadoras regionales, E y S |
| 👩💻 | 1 | 3 | 5 | 11 | Una ZWJ (U+200D) une dos emoji |
Por eso, antes de fijar un límite como «20 caracteres como máximo», hay que decidir qué se cuenta. A las personas les importan los caracteres visibles, al almacenamiento le importan los bytes UTF-8, y las posiciones de slice y substring en JavaScript son unidades UTF-16. Si cortas un emoji por la mitad en un límite UTF-16, queda un sustituto sin pareja, que se ve como un carácter roto (�).
Sílabas hangul: una fórmula para el punto de código
Las 11.172 sílabas hangul precompuestas (U+AC00 a U+D7A3) están dispuestas como 19 iniciales × 21 vocales × 28 finales (incluida la ausencia de final), así que su número se puede calcular. El apartado 3.12 del estándar Unicode da la fórmula siguiente, con todos los índices contados desde 0.
punto de código = 0xAC00 + (inicial × 21 + vocal) × 28 + final
| Sílaba | Inicial | Vocal | Final | Cálculo | Punto de código |
|---|---|---|---|---|---|
| 가 | ㄱ 0 | ㅏ 0 | sin final 0 | AC00 + (0 × 21 + 0) × 28 + 0 | U+AC00 |
| 한 | ㅎ 18 | ㅏ 0 | ㄴ 4 | AC00 + (18 × 21 + 0) × 28 + 4 = AC00 + 10.588 | U+D55C |
| 힣 | ㅎ 18 | ㅣ 20 | ㅎ 27 | AC00 + (18 × 21 + 20) × 28 + 27 = AC00 + 11.171 | U+D7A3 |
En sentido inverso, resta 0xAC00 y divide entre 588 (21 × 28): el cociente es la inicial, el resto dividido entre 28 da la vocal, y lo que queda es el final. La línea «Como jamo» de la ficha muestra la misma sílaba separada en el bloque Hangul Jamo, y el nombre oficial de una sílaba sale de la misma regla, de modo que 한 es HANGUL SYLLABLE HAN.
El mapa del espacio de código: 17 planos
Los 1.114.112 puntos de código se reparten en 17 planos de 65.536 (0x10000). Lo que precede a las últimas cuatro cifras es el número de plano: el 1 de U+1F600. En el mapa de la herramienta, un tablero grande es un plano dividido en 256 celdas de 256 puntos de código, y cada celda se colorea según el grupo de bloques que más la ocupa.
| Plano | Rango | Nombre | Qué contiene |
|---|---|---|---|
| 0 | U+0000 a U+FFFF | Plano Multilingüe Básico (BMP) | Latino, griego, cirílico, hangul, han de uso común, kana y la mayoría de las escrituras actuales, los sustitutos (D800 a DFFF) y el área de uso privado (E000 a F8FF) |
| 1 | U+10000 a U+1FFFF | Plano Multilingüe Suplementario (SMP) | La mayoría de los emoji, escrituras históricas, letras matemáticas, símbolos musicales |
| 2 | U+20000 a U+2FFFF | Plano Ideográfico Suplementario (SIP) | Ideogramas unificados CJK, extensiones B a F e I, suplemento de ideogramas de compatibilidad CJK |
| 3 | U+30000 a U+3FFFF | Plano Ideográfico Terciario (TIP) | Ideogramas unificados CJK, extensiones G, H y J, Seal (Unicode 18.0) |
| 4 a 13 | U+40000 a U+DFFFF | Sin asignar | Todavía no tienen caracteres asignados |
| 14 | U+E0000 a U+EFFFF | Plano Suplementario de Propósito Especial (SSP) | Caracteres de etiqueta, suplemento de selectores de variación |
| 15 y 16 | U+F0000 a U+10FFFF | Áreas de Uso Privado Suplementarias A y B | Áreas que cada organización o fuente define por su cuenta |
Los dos tramos más anchos del plano 0 son los ideogramas unificados CJK (U+4E00 a U+9FFF, 20.992 puntos de código) y las sílabas hangul (U+AC00 a U+D7A3, 11.172 caracteres). Justo después, U+D800 a U+DFFF está reservado para los sustitutos y no tiene caracteres, y U+E000 a U+F8FF es un área de uso privado que se deja sin nombre. Los planos 1 a 16 se escriben todos como pares sustitutos en UTF-16.
Caracteres que no se ven
Los caracteres que parecen espacios, o que no se ven en absoluto, también tienen punto de código. La tira de puntos de código y la ficha los muestran como etiquetas en cajas de borde discontinuo, de modo que se ve enseguida qué se esconde en un texto pegado.
| Etiqueta | Punto de código | Nombre oficial | Dónde aparece |
|---|---|---|---|
| NBSP | U+00A0 | NO-BREAK SPACE (espacio de no separación) | en páginas web, espacios pegados en procesadores de texto |
| ZWSP | U+200B | ZERO WIDTH SPACE (espacio de ancho cero) | Texto copiado de la web, lugares que marcan dónde puede haber un salto de línea |
| ZWJ | U+200D | ZERO WIDTH JOINER (unión de ancho cero) | La unión que convierte dos emoji en uno, como en 👩💻 |
| VS16 | U+FE0F | VARIATION SELECTOR-16 (selector de variación 16) | Pide el aspecto de emoji en color, como en ❤️ |
| BOM | U+FEFF | ZERO WIDTH NO-BREAK SPACE (marca de orden de bytes) | El comienzo de archivos guardados por algunos editores |
| IDSP | U+3000 | IDEOGRAPHIC SPACE (espacio ideográfico) | Textos en japonés y chino, espacios escritos en modo de ancho completo |
| HF | U+3164 | HANGUL FILLER (relleno de hangul) | Parece vacío, por lo que a veces se usa en apodos |
| SHY | U+00AD | SOFT HYPHEN (guion blando) | Un guion que solo se ve donde se parte una palabra al final de la línea |
El salto de línea también es un carácter. El Bloc de notas de Windows termina la línea con dos caracteres, CR (U+000D) y LF (U+000A), mientras que macOS y Linux suelen usar solo LF. Sin embargo, una casilla de texto del navegador convierte un CR LF pegado en un único LF, así que, para ver los finales de línea de un archivo tal como son, hace falta una herramienta que muestre bytes, como un conversor de UTF-8 hexadecimal.
Normalización: NFC y NFD
A veces Unicode permite escribir el mismo texto de dos maneras. La ñ suelta (U+00F1) y el par n más tilde combinante (U+006E U+0303) se ven idénticas, y Unicode las considera el mismo texto (equivalencia canónica). Forzar la forma compuesta se llama NFC y forzar la forma descompuesta, NFD (UAX #15). Con el hangul pasa lo mismo: 한 es U+D55C en NFC y tres jamo, U+1112 U+1161 U+11AB, en NFD.
| Carácter | NFC (compuesta) | NFD (descompuesta) |
|---|---|---|
| ñ | U+00F1 | U+006E U+0303 |
| é | U+00E9 | U+0065 U+0301 |
| ü | U+00FC | U+0075 U+0308 |
| ç | U+00E7 | U+0063 U+0327 |
La comparación, la búsqueda y los nombres de archivo suelen tratar como valores distintos las formas de normalización diferentes. Si la casilla de texto contiene caracteres descompuestos, la herramienta te lo avisa, y los botones «Componer a NFC» y «Descomponer a NFD» convierten todo de una vez. La normalización de compatibilidad (NFKC y NFKD), que iguala formas como las de ancho medio y ancho completo o ① y 1, no se hace aquí.
Errores frecuentes
- Escribir en decimal el valor que sigue a U+: el F1 de U+00F1 es hexadecimal. Si escribes el decimal 241 como U+241, obtienes un carácter completamente distinto. La herramienta lee un número sin prefijo como hexadecimal y, si solo tiene cifras, ofrece un botón para leerlo como decimal.
- Copiar valores sustitutos como puntos de código: pasar
\uD83D\uDE00a U+D83D U+DE00 no da un carácter. El punto de código es el único U+1F600. - Las cifras tras
\u:\uen JavaScript y JSON lleva exactamente cuatro cifras, y\Uen Python exactamente ocho.\u1F600se lee como U+1F60 (ὠ) seguido de la cifra 0. - Las cifras tras un escape de CSS: en CSS,
"\00F11"se lee como U+00F11. Para escribir un 1 después de la ñ hay que cerrar el escape con un espacio:"\00F1 1". - Omitir el punto y coma de una referencia HTML:
ñsin punto y coma se lee de forma distinta según lo que venga detrás, o se trata como un error. Ciérrala así:ñ. - Juzgar por la forma: la A latina (U+0041), la Α griega (U+0391) y la А cirílica (U+0410) se ven igual pero son caracteres distintos. Mezcladas en una dirección o en un identificador, hacen fallar la búsqueda y el inicio de sesión, así que conviene comprobarlo con los puntos de código.
Límites
- Los nombres, bloques, categorías generales y versiones proceden de los datos de Unicode 18.0. La forma de los caracteres la dibujan las fuentes de tu dispositivo, de modo que un carácter que está en los datos aún puede verse como un cuadrado.
- Los caracteres visibles se cuentan con las reglas de grafemas del navegador (Intl.Segmenter). Según la versión de Unicode que conozca tu navegador, las secuencias de emoji recientes pueden contarse de otra manera.
- No se leen la notación
\N{nombre}de Python ni los escapes octales.\xse lee como punto de código (U+0000 a U+00FF), no como byte; para convertir bytes UTF-8 en texto, usa un conversor de UTF-8 hexadecimal. - CSS lee
\0, los sustitutos y los valores mayores que U+10FFFF como U+FFFD, pero esta herramienta señala como errores los sustitutos y los valores fuera de rango. - No incluye la normalización de compatibilidad (NFKC y NFKD), el cambio entre mayúsculas y minúsculas ni la búsqueda por nombre de carácter.
- La casilla de texto convierte hasta 200.000 caracteres, y la tira de puntos de código dibuja los primeros 400.
- La conversión se hace solo en tu navegador. La herramienta descarga una vez el archivo de datos con los nombres de los caracteres, y los caracteres o códigos que escribes nunca se envían a un servidor.
Base: la notación U+, los planos, los sustitutos y la regla de las sílabas hangul siguen la especificación básica de Unicode 18.0; los nombres, bloques y versiones, la base de datos de caracteres de Unicode 18.0 (UCD); la sintaxis de los escapes, las especificaciones de ECMAScript, Python, HTML y CSS y el RFC 8259, todo comprobado el 22 de octubre de 2026. Los valores de las tablas se recalcularon con el núcleo de conversión de esta herramienta y se compararon.
Fuentes
- 01Unicode 18.0, apéndice A: Notational ConventionsUn punto de código es U+ seguido de cuatro a seis cifras hexadecimales, con ceros a la izquierda si es más corto
- 02Unicode 18.0, 2.8.1: PlanesEspacio de código de 0 a 10FFFF (1.114.112), BMP, SMP, SIP, TIP, SSP y planos de uso privado
- 03Unicode 18.0, 3.9.2: UTF-16Los caracteres por encima de U+FFFF son dos unidades, un par sustituto
- 04Unicode 18.0, 3.12: Hangul Syllable DecompositionSBase AC00, 19 iniciales, 21 vocales, 28 finales, 11.172 sílabas
- 05Unicode 18.0, 4.8.1: Unicode Name PropertyLas reglas que construyen los nombres de sílabas hangul e ideogramas CJK (tabla 4-8)
- 06Unicode 18.0.0Se añaden 13.007 caracteres, 172.808 en total
- 07Unicode Character Database 18.0Nombres (UnicodeData), bloques (Blocks), versión de incorporación (DerivedAge)
- 08UAX #29: Unicode Text SegmentationEl grupo de grafemas, lo que en pantalla parece un solo carácter
- 09UAX #15: Unicode Normalization FormsNFC, NFD y equivalencia canónica
- 10ECMA-262: String LiteralsLos escapes \uXXXX y \u{…} de JavaScript
- 11Referencia del lenguaje Python: Secuencias de escape\uxxxx (cuatro cifras), \Uxxxxxxxx (ocho cifras), \N{nombre}
- 12HTML Standard: Character referencesReferencias numéricas decimales y hexadecimales, y referencias con nombre
- 13CSS Syntax Level 3: Consume an escaped code pointBarra invertida y de una a seis cifras hexadecimales; un espacio final cierra el escape
- 14RFC 8259, sección 7: StringsJSON escribe los caracteres por encima de U+FFFF como un par, por ejemplo \uD834\uDD1E
- 15MDN: String.lengthLa longitud de una cadena de JavaScript es su número de unidades de código UTF-16
- 16Apple TN1150: HFS Plus Volume FormatHFS Plus guarda los nombres de archivo en forma totalmente descompuesta
Preguntas frecuentes
¿Cuál es el punto de código Unicode de la ñ?
La ñ precompuesta es U+00F1, 241 en decimal. En JavaScript y JSON se escribe \u00F1, en HTML ñ o ñ, y en UTF-8 ocupa dos bytes, C3 B1. Una ñ descompuesta es otra secuencia: n (U+006E) más una tilde combinante (U+0303).
¿Cómo convierto un código como U+00F1 en el carácter?
Escribe U+00F1 en la casilla de código y la casilla de texto mostrará ñ. Los valores escritos en otras notaciones, como \u00F1, ñ, ñ o 0xF1, se pueden pegar tal cual y la herramienta reconoce la notación. Separa varios valores con espacios o comas.
¿Por qué 😀 aparece como dos escapes, \uD83D\uDE00?
😀 es un único punto de código, U+1F600. El escape \u de JavaScript, JSON y Java admite exactamente cuatro dígitos hexadecimales (una unidad UTF-16), así que lo que supera U+FFFF se escribe como un par sustituto, \uD83D\uDE00. Con \u{1F600} o con \U0001F600 de Python se escribe de una sola vez.
¿Por qué la longitud de un emoji sale 2 o 5?
La propiedad length de JavaScript cuenta unidades UTF-16. 😀 es un punto de código, pero ocupa dos unidades UTF-16, y 👩💻 son tres puntos de código (U+1F469, U+200D y U+1F4BB), que suman cinco unidades. Esta herramienta muestra juntos los caracteres visibles, los puntos de código, la longitud UTF-16 y los bytes UTF-8.
¿Por qué dos ñ idénticas a la vista tienen distintos puntos de código?
La ñ precompuesta es un solo punto de código, U+00F1, mientras que la descompuesta son dos: n (U+006E) y una tilde combinante (U+0303). Se ven igual y Unicode las considera equivalentes, pero una comparación exacta de cadenas puede distinguirlas. El botón Componer a NFC las iguala.
¿Cómo encuentro los caracteres que no se ven?
Pega el texto en la casilla de texto. La tira de puntos de código marca con etiquetas de borde discontinuo el espacio de ancho cero (ZWSP, U+200B), la marca de orden de bytes (BOM, U+FEFF) y el espacio de no separación (NBSP, U+00A0). Sirve cuando un número o una dirección copiados se comportan de forma extraña.
¿Cuántos puntos de código tiene Unicode?
De U+0000 a U+10FFFF hay 1.114.112 puntos de código, repartidos en 17 planos de 65.536. Unicode 18.0 asigna 172.808 caracteres. El rango de sustitutos U+D800 a U+DFFF nunca se usa para caracteres.
¿Se envía al servidor el texto que escribo?
No. La conversión se hace solo en tu navegador. La herramienta descarga una vez el archivo de datos de Unicode 18.0 para mostrar los nombres, pero los caracteres o códigos que escribes no se envían ni se guardan.