Contador de caracteres
Recuento de caracteres en vivo, con y sin espacios, tamaño en bytes, y qué tan cerca estás de los límites habituales de plataformas como tuits y meta descripciones.
Límites habituales
Cómo funciona
En cada pulsación la página recalcula tres números. El recuento de caracteres es .length de JavaScript, que cuenta unidades de código UTF-16. El recuento sin espacios elimina primero todos los espacios en blanco (espacios, tabulaciones, saltos de línea) con una expresión regular. El tamaño en bytes pasa tu texto por la API TextEncoder del navegador, que produce los bytes UTF-8 reales que el texto ocuparía en un archivo, una columna de base de datos o el cuerpo de una petición HTTP. La lista de límites de plataformas es entonces solo una resta contra cada límite, cambiando al estilo "excedido" en cuanto lo superas.
La diferencia entre esos números es donde la gente se sorprende. Un emoji como una carita sonriente es un símbolo visible pero dos unidades de código UTF-16 (por lo que cuenta como 2 caracteres aquí, y en muchas plataformas) y cuatro bytes de UTF-8. Para SMS en concreto, el límite de 160 caracteres asume que el mensaje se mantiene dentro del antiguo alfabeto GSM-7: incluye un solo emoji o una comilla tipográfica y el operador cambia silenciosamente todo el mensaje a codificación UCS-2, reduciendo el límite por segmento a 70 caracteres. Si al editar un solo carácter tu texto de repente se divide en dos segmentos de SMS, esa es la razón.
El recuento ocurre por completo en el JavaScript de esta página. Abre la pestaña Red de las herramientas de desarrollador mientras escribes: verás cero peticiones, porque tu texto nunca sale del navegador.