转义字符
在计算机科学与远程通信中,当转义字符(Escape Character)放在字符序列时,它将对它后续的几个字符进行替代并解释。转义字符是元字符的一种特殊情况。通常,判定某字符是否为转义字符由上下文确定。转义字符即标志着转义序列开始的那个字符。 转义字符原本是指ASCII中的十进制27,十六进制1B,八进制033所定义的那个字符。对应于标准键盘左上角的ESC键。老式键盘如果没有ESC键,替代输入是“Ctrl+[”。在老式的计算机外设控制协议,ASCII码的十进制27这个字符开始的一个字符序列,是外设的控制序列,不能按照这些字符的字面意义解释。后来,就把最初的狭义的Escape character的含义引申开来,在各种计算机语言与协议中,标志着一个转义序列开始的那个字符,都叫做Escape character。最常见的一个例子是C程序设计语言中,用反斜线字符“\”作为转义字符,来表示那些不可打印的ASCII控制符。在URI协议中,转义字符是百分号“%”。 定义转义字符是很多程序语言、数据格式和通信协议的形式文法的一部分。对于一个给定的字母表,一个转义字符的目的是开始一个字符序列,使得转义字符开头的该字符序列具有不同于该字符序列单独出现(没有转义字符开头)时的语义。因此转义字符开头的字符序列被叫做转义序列。一个转义字符可能并没有它自己的意思,因此所有转义序列具有2个或更多字符。 转义序列通常有两种功能。第一个是编码一个句法上的实体,如设备命令或者无法被字母表直接表示的特殊数据。第二种功能,也叫字符引用,用于表示无法在当前上下文中被键盘录入的字符(如字符串中的回车符),或者在当前上下文中会有不期望的含义的字符(如C语言字符串中的双引号字符",不能直接出现,必须用转义序列表示)。在后面那种情况,转义序列是一种由转义字符自身和一个被引用的字符组成的一个二合字母(digraph)情形。 控制字符转义字符不属于控制字符;控制字符也不属于转义字符。如果控制字符的定义是非图形的字符,或者对输出设备(打印机、文本终端)有特殊意义的字符,那么针对这些设备的转义字符也是控制字符。但是程序设计用的转义字符是图形字符,因此它们不是控制字符。相反地,大多数ASCII控制字符单独都具有控制功能,因此它们不是转义字符。 转义字符在各个编程语言中的使用方法在不同的编程语言中,转义字符的使用方法均不同。 在java中
例子ASCII转义字符ASCII的「Escape」字符被用于许多输出设备,标志着开始一个转义字符序列。例如^[,后跟可打印字符 程序设计与数据格式许多程序设计语言把双引号字符(
将产生语法错误。而
将产生期望的输出结果。 另一种可选择的办法是:
使用双引号字符编码值的十六进制"x22"转义字符序列。但是,如果其运行在非ASCII计算机上,将不会产生预期的结果。 C语言、C++、Java语言都具有上述两种反斜线转义字符的用法。PostScript语言与微软的Rich Text Format也使用反斜线转义字符。quoted-printable编码使用等号( URL与URI使用%-转码来表示特殊字符,例如非ASCII字符。SGML及其派生的HTML与XML使用&字符作为字符编码引用的转义字符。 通信协议在点对点协议中, Bourne shellBourne shell(sh)中,*字符与?字符是通配符。如果没有前导的转义字符,
Windows命令行Windows命令行终端使用^字符转义那些具有特殊含义的保留字符(如: 例如,Windows命令行终端中输入这一命令将会产生错误
但下述输入将产生正确的期望结果:
其它
参见参考文献
外部链接 |
Portal di Ensiklopedia Dunia