stringtranslate.com

Personaje de escape

En informática y telecomunicaciones , un carácter de escape es un carácter que invoca una interpretación alternativa de los caracteres siguientes en una secuencia de caracteres. Un carácter de escape es un caso particular de metacaracteres . Generalmente, determinar si algo es un carácter de escape o no depende del contexto.

En el campo de las telecomunicaciones, los caracteres de escape se utilizan para indicar que los caracteres siguientes están codificados de forma diferente. Esto se utiliza para alterar caracteres de control que, de otro modo, el hardware de telecomunicaciones subyacente detectaría y utilizaría, como caracteres ilegales . En este contexto, el uso de caracteres de escape suele denominarse " comillas" .

Definición

Un carácter de escape puede no tener su propio significado, por lo que todas las secuencias de escape son de dos o más caracteres.

Los caracteres de escape forman parte de la sintaxis de muchos lenguajes de programación, formatos de datos y protocolos de comunicación. En un alfabeto determinado, el propósito de un carácter de escape es iniciar secuencias de caracteres (denominadas secuencias de escape ), que deben interpretarse de manera diferente a los mismos caracteres que aparecen sin el carácter de escape prefijado.

Las funciones de las secuencias de escape incluyen:

Personaje de control

En general, un carácter de escape no es un caso particular de caracteres de control (de dispositivo) , ni viceversa. Si definimos los caracteres de control como no gráficos , o como que tienen un significado especial para un dispositivo de salida (por ejemplo, impresora o terminal de texto ), entonces cualquier carácter de escape para este dispositivo es un carácter de control. Pero los caracteres de escape utilizados en programación (como la barra invertida , "\") son gráficos, por lo tanto, no son caracteres de control. Por el contrario, la mayoría (pero no todos) de los "caracteres de control" ASCII tienen alguna función de control de forma aislada, por lo tanto, no son caracteres de escape.

En muchos lenguajes de programación, un carácter de escape también forma algunas secuencias de escape que se conocen como caracteres de control. Por ejemplo, el salto de línea tiene una secuencia de escape de \n.

Ejemplos

JavaScript

JavaScript utiliza la \(barra invertida) como carácter de escape para: [1] [2]

Los escapes \vy \0no están permitidos en cadenas JSON.

Código de ejemplo:

console.log ( "Usar \\ n \nDesplazará los caracteres después de \\n una fila hacia abajo" ) console.log ( " Usar \\ t \tDesplazará los caracteres después de \\t una longitud de tabulación hacia la derecha" ) console.log ( " Usar \\r \rImitará un retorno de carro, lo que significa desplazarse al comienzo de la fila" ) // se puede usar para limpiar la pantalla en algunas terminales. Windows usa \r\n en lugar de \n solo 

Carácter de escape ASCII

El carácter de "escape" ASCII ( octal : \033, hexadecimal : \x1B, o, en decimal, 27, también representado por las secuencias ^[o \e) se utiliza en muchos dispositivos de salida para iniciar una serie de caracteres llamada secuencia de control o secuencia de escape. Normalmente, el carácter de escape se enviaba primero en dicha secuencia para alertar al dispositivo de que los siguientes caracteres debían interpretarse como una secuencia de control en lugar de como caracteres simples, luego uno o más caracteres seguirían para especificar alguna acción detallada, después de lo cual el dispositivo volvería a interpretar los caracteres normalmente. Por ejemplo, la secuencia de ^[, seguida de los caracteres imprimibles [2;10H, haría que un terminal VT102 de Digital Equipment Corporation (DEC) moviera su cursor a la décima celda de la segunda línea de la pantalla. Esto se desarrolló más tarde en los códigos de escape ANSI cubiertos por el estándar ANSI X3.64. El carácter de escape también inicia cada secuencia de comandos en el lenguaje de comandos de impresora Hewlett-Packard .

Una referencia temprana al término "carácter de escape" se encuentra en las publicaciones técnicas de IBM de Bob Bemer , a quien se le atribuye la invención de este mecanismo durante su trabajo en el conjunto de caracteres ASCII . [3]

La tecla Escape se encuentra generalmente en los teclados estándar de PC. Sin embargo, suele estar ausente en los teclados de PDA y otros dispositivos que no están diseñados principalmente para comunicaciones ASCII. La serie DEC VT220 fue uno de los pocos teclados populares que no tenía una tecla Esc dedicada, en lugar de utilizar una de las teclas sobre el teclado principal. En las interfaces de usuario de los años 1970 y 1980 no era raro utilizar esta tecla como carácter de escape, pero en las computadoras de escritorio modernas, dicho uso se ha abandonado. A veces, la tecla se identificaba con AltMode (para el modo alternativo). Incluso sin una tecla dedicada, el código del carácter de escape se podía generar escribiendo [mientras se mantenía presionada simultáneamente Ctrl.

Programación y formatos de datos

Muchos lenguajes de programación modernos especifican el carácter de comillas dobles ( ") como delimitador para una cadena literal . El carácter de escape de barra invertida ( \) normalmente proporciona dos formas de incluir comillas dobles dentro de una cadena literal, ya sea modificando el significado del carácter de comillas dobles incrustado en la cadena ( \"se convierte en "), o modificando el significado de una secuencia de caracteres que incluye el valor hexadecimal de un carácter de comillas dobles ( \x22se convierte en ").

C , C++ , Java y Ruby permiten exactamente los mismos dos estilos de escape de barra invertida. El lenguaje PostScript y el formato de texto enriquecido de Microsoft también utilizan escapes de barra invertida. La codificación entre comillas utiliza el signo igual como carácter de escape.

Las direcciones URL y URI utilizan el carácter de escape % para citar caracteres con un significado especial, como ocurre con los caracteres que no son ASCII. El carácter & ( ) puede considerarse un carácter de escape en SGML y formatos derivados, como HTML y XML .&

Algunos lenguajes de programación también proporcionan otras formas de representar caracteres especiales en literales, sin necesidad de un carácter de escape (véase, por ejemplo, colisión de delimitadores ).

Protocolos de comunicación

El protocolo punto a punto (PPP) utiliza el 0x7D octeto ( \175, o ASCII: }) como carácter de escape. El octeto que sigue inmediatamente debe ser objeto de una operación XOR0x20 antes de pasarlo a un protocolo de nivel superior. Esto se aplica tanto a 0x7Dsí mismo como al carácter de control 0x7E(que se utiliza en PPP para marcar el comienzo y el final de una trama) cuando esos octetos deben ser transmitidos por un protocolo de nivel superior encapsulado por PPP, así como a otros octetos negociados cuando se establece el enlace. Es decir, cuando un protocolo de nivel superior desea transmitir 0x7D, se transmite como la secuencia 0x7D 0x5D, y 0x7Ese transmite como 0x7D 0x5E.

Concha Bourne

En Bourne Shell (sh), los caracteres asterisco ( *) y signo de interrogación ( ?) son caracteres comodín que se expanden mediante la función globbing . Sin un carácter de escape precedente, an *se expandirá a los nombres de todos los archivos en el directorio de trabajo que no comiencen con un punto si y solo si existen dichos archivos, de lo contrario *permanece sin expandir. Por lo tanto, para hacer referencia a un archivo llamado literalmente "*", se le debe indicar al shell que no lo interprete de esta manera, precediéndolo con una barra invertida ( \). Esto modifica la interpretación del asterisco ( *). Compare:

Símbolo del sistema de Windows

El intérprete de línea de comandos de Windows utiliza un carácter de intercalación ( ^) para escapar de caracteres reservados que tienen significados especiales (en particular: &, |, (, ), <, >, ^). [4] El intérprete de línea de comandos de DOS , aunque tiene una sintaxis similar, no admite esto.

Por ejemplo, en el símbolo del sistema de Windows, esto generará un error de sintaxis.

C:\> echo  < hola mundo> La sintaxis del comando es incorrecta.

mientras que esto generará la cadena:<hello world>

C:\> echo  ^< hola mundo ^> <hola mundo>

Windows PowerShell

En Windows , la barra invertida se utiliza como separador de ruta; por lo tanto, generalmente no se puede utilizar como carácter de escape. PowerShell utiliza la comilla invertida [5] ( ` ) en su lugar.

Por ejemplo, el siguiente comando:

PS C:\> echo " `t Primera línea `n Nueva línea" Primera línea Nueva línea

Otros

Véase también

Referencias

  1. ^ "Secuencias de escape de caracteres de JavaScript". Mathias Bynens. 21 de diciembre de 2011. Consultado el 30 de junio de 2014 .
  2. ^ "Caracteres especiales (JavaScript)". Microsoft Developer Network. Archivado desde el original el 14 de diciembre de 2014. Consultado el 30 de junio de 2014 .
  3. ^ Bemer, Bob (25 de octubre de 2003). "Cómo Bob Bemer inventó la secuencia y la tecla ESCAPE". Bob Bemer . Archivado desde el original el 4 de enero de 2018. Consultado el 22 de marzo de 2018 .
  4. ^ Tim Hill (1998). "El shell de comandos de Windows NT". Microsoft Learn . MacMillan Technical Publishing . Consultado el 13 de enero de 2010 .
  5. ^ "about_Escape_Characters". Microsoft Developer Network. 8 de mayo de 2014. Archivado desde el original el 25 de noviembre de 2016. Consultado el 24 de noviembre de 2016 .

Enlaces externos

Dominio público Este artículo incorpora material de dominio público de la Norma Federal 1037C. Administración de Servicios Generales . Archivado desde el original el 22 de enero de 2022.