Si alguna vez ha intentado enviar un mensaje vacío en Telegram, lo más probable es que haya descubierto que no se envían ni el signo de espacio ni el signo de nueva línea (Alt + Enter); el campo de entrada simplemente se borra. Al mismo tiempo, puedes ver que otras personas literalmente te envían un espacio vacío y tienen éxito. ¿Dónde está la magia aquí? Si desea una respuesta corta, insertan el carácter "roto" u+3164. Puede copiarlo de los corchetes y usar: "ㅤㅤㅤ". Si desea una respuesta más detallada, a continuación le diremos de dónde proviene el texto invisible, cómo obtenerlo y usarlo, por qué no debe usarlo en el código y qué otros caracteres hay.
Símbolo invisible - ¿cómo funciona?
Comencemos la explicación con tablas de caracteres y codificaciones. Cualquier computadora a nivel de hardware comprende 2 caracteres: 0 y 1. Esto no es conveniente para las personas, porque todavía estamos más acostumbrados a las letras que se forman en palabras, oraciones, párrafos, etc. Para trabajar con estas letras sin ningún problema, se nos ocurrió un esquema muy simple: tomamos las letras en orden y les damos números únicos: a = 1, b = 2, c = 3, etc. También le damos números únicos a las letras mayúsculas, signos (punto, coma, signo de interrogación, etc.), espacios en blanco y números: una lista muestra un identificador único que se asigna a cada carácter posible. Esta lista se denomina tabla de códigos de caracteres y la primera tabla de códigos que se reconoce es ASCII:
La segunda mitad está vacía. Está destinado a personajes regionales. La tabla en sí es como una información de referencia. También hay una codificación – un conjunto de instrucciones para descifrar esta tabla. Las codificaciones aparecieron debido a los estándares regionales. Son necesarios para leer los caracteres "correctamente". Si tomamos la codificación que era común en la CEI en ese momento, habrá una instrucción en ella: "Para obtener la letra "г" use 8x3 en ASCII"; si tomamos la codificación que se usaba en Alemania en ese momento, se escribirá: "Para obtener la letra "β" use 8x3".
Como era terriblemente inconveniente debido a la localización en varios idiomas, se inventó y estandarizó una nueva tabla de caracteres, Unicode. Unicode puede contener más de 1.000.000 de caracteres. Por el momento, se han agregado aproximadamente 100,000 caracteres a Unicode, por lo que otro 90% de las celdas están disponibles. Se inventó una codificación UTF universal para Unicode para facilitar a los diseñadores el dibujo de fuentes (sí, para cada codificación por separado, los diseñadores deben dibujar una fuente por separado).
Eso es suficiente trasfondo, ahora es el momento de descubrir de dónde viene el personaje invisible. Se trata de los errores de Unicode: algunos caracteres especiales (control y espacios en blanco) no se comportan como se esperaba. El grupo de insectos más interesante para nosotros es el personaje invisible. El punto es que el signo debe ser especial y debe mostrarse como un espacio en blanco muy pequeño, pero la codificación lo percibe como un carácter completo (como una letra o un número) y lo muestra como un espacio grande. Es posible que ya haya adivinado cómo se puede usar el área invisible como un letrero completo, para insertar un espacio donde no se proporciona.
Texto Invisible – cómo copiar y pegar?
Para empezar, le informaremos de las tristes noticias: incluso estos errores de codificación se están solucionando gradualmente. Anteriormente (en 2012), un truco era popular en "Vkontakte": era posible insertar un carácter de control de nueva línea en el estado y el estado se dividía en 2 líneas. Ahora no puede hacer esto – el sitio procesa la salida de datos correctamente y dicha inscripción ya no rompe la cadena:
Además de &nsbp, las redes sociales y los mensajeros han eliminado todos los caracteres de control y especiales: no puede voltear el texto o mostrarlo al revés si el idioma no lo proporciona inicialmente. Hay servicios como https://textinvert.ru/, que le permiten cambiar el texto, pero no lo ponen boca abajo, sino que recogen letras similares en otros idiomas. Requiere un algoritmo especial. Es extremadamente difícil crear un texto vacío grande ahora (aunque todavía es posible), pero los emojis invisibles y el signo de conjunto vacío que rompieron muchas fuentes también se corrigieron ahora. Todo lo que queda es enviar mensajes vacíos como estos:
Unicode U+3164 para insertar un carácter invisible
Entonces, lo más útil es un espacio invisible, también conocido como una "cadena vacía". De hecho, hay 3 de estos caracteres, aquí están sus códigos:
Código de personaje |
Caracter |
U+115F |
ᅟ |
U+1160 |
ᅠ |
U+3164 |
ㅤ |
Para ver el carácter, haga doble clic en él en la tabla. "Palabra", por cierto, resalta ligeramente el símbolo en gris.
En cuanto al resto de los caracteres, todavía hay caracteres de espacio en blanco con direcciones en el área de   –  , pero los probamos y descubrimos que los mensajeros los perciben como espacios ordinarios, por lo tanto, no son de interés. Si los necesita de todos modos o desea probarlos usted mismo en diferentes servicios – aquí hay algunos espacios y caracteres de control más:
Código de personaje |
¿Qué significa? |
Caracter |
U+00A0 |
Espacio sin hueco |
|
U+2003 |
Espacio Em |
|
U+2007 |
Espacio rizado (lo que sea que eso signifique) |
|
U+2008 |
Espacio de puntuación |
|
U+2009 |
Espacio estrecho |
|
U+205F |
Espacio matemático promedio |
|
U+3000 |
Espacio ideográfico |
|
En cuanto a los tres caracteres anteriores, inicialmente son marcadores de posición para caracteres coreanos superpuestos. Se los considera personajes de pleno derecho, aunque son rellenos. Quizás este comportamiento se deba al hecho de que cuando se usa un marcador de posición, el jeroglífico no debe transferirse a una nueva línea. Si el carácter se considera un espacio en blanco, puede producirse una transferencia (depende de otros caracteres de control). De todos modos, puede copiar un carácter vacío de la tabla y pegarlo donde lo necesite. Pero donde se puede insertar, veamos a continuación.
Texto invisible en WhatsApp, VK, Instagram, Discord y juegos
Como ya dijimos, todas las plataformas principales se han asegurado de que los caracteres de control, especiales y otros "no estándar" se recorten durante el procesamiento. Por lo tanto, el alcance de aplicación de tales símbolos es extremadamente limitado, aunque en algunos lugares todavía se pueden usar.
WhatsApp, Viber, Telegram:
Si inserta un espacio en blanco normal, WhatsApp, al igual que otros mensajeros, no le permite enviar este mensaje; el botón "Enviar" no aparece. Se puede enviar U+3164. El resultado es un mensaje vacío.
VK, Facebook Messenger:
Existe la misma situación que con los mensajeros – puede enviar mensajes vacíos a mensajes privados. Por cierto, también puede poner U+3164 en el estado de VK; se mostrará como una línea vacía. Si coloca un espacio regular, el estado se eliminará y la inscripción "Establecer estado" será visible.
TikTok, Instagram: No hay opción de usar el espacio oculto. Ambas plataformas consideran el carácter de espacio oculto como un espacio regular.
Discordia:
Discord te permite enviar mensajes vacíos. Al mismo tiempo, si intentas crear un canal con un nombre vacío, Discord no te permitirá hacerlo:
Preguntas FRECUENTES
Si pongo un personaje invisible en Skype, ¿el estado será "sin conexión"?
No, puede escribir cualquier texto en la barra de estado de la cuenta (incluido un espacio oculto), el estado "en línea" o "sin conexión" no cambiará.
¿Cuáles son los problemas con el carácter nulo en la programación?
No deberías usarlos en tu código si no quieres arruinarlo. Si necesita usar un carácter para el almacenamiento o la salida, escríbalo en una variable o en la salida con un código Unicode. ¿Por qué es mejor no usarlo? Aquí hay un ejemplo para ti:
Como puede ver, hemos declarado una variable que tiene espacios en el nombre, lo que Python prohíbe. Al mismo tiempo, PyCharm advierte que algo anda mal con esta variable:
No solo está violando las reglas del lenguaje, sino que también está poniendo un radio en sus ruedas: para acceder a una variable, deberá copiar y pegar manualmente su nombre. Si estás haciendo algún proyecto para ti y quieres complicarte la vida, puedes usar esos espacios, pero si estás trabajando en algún proyecto serio, ni siquiera intentes hacer esto, de lo contrario estarás en problemas.
Puede un carácter especial romper el diseño?
En teoría, esto es posible, siempre que el diseño se hace oblicuamente o hereda malos patrones. Es mejor no utilizar estos caracteres en el diseño, si no quieres si no quieres todo para romper un día.
¿Es posible usar estos símbolos para hackear?
Técnicamente, uno de los caracteres de control, '\0', se puede usar para piratear el sistema a través de un programa escrito en C. Un terminador nulo indica al programa que la línea ha terminado, y se puede escribir código malicioso después del terminador. Pero esto es muy difícil, porque en primer lugar, debe encontrar un programa que procese incorrectamente las líneas entrantes y luego también le permita ejecutar código malicioso desde la memoria de otra persona. Hace unos 15 años era una forma popular de piratear, ahora es más como una exhibición de piratería en un museo.