新闻资讯
看你所看,想你所想

转义字元串

转义字元串

转义字元串

(Escape character),原本是指ASCII中的十进制27,十六进制1B,八进制033所定义的那个字元。对应于标準键盘左上角的ESC键。老式键盘如果没有ESC键,替代输入是“Ctrl+[”。在老式的计算机外设控制协定,ASCII码的十进制27这个字元开始的一个字元序列,是外设的控制序列,不能按照这些字元的字面意义解释。后来,就把最初的狭义的Escape character的含义引申开来,在各种计算机语言与协定中,标誌着一个转义序列开始的那个字元,都叫做Escape character。最常见的一个例子是C程式设计语言中,用反斜线字元“\”作为转义字元,来表示那些不可列印的ASCII控制符。在URI协定中,转义字元是百分号“%”。

基本介绍

  • 中文名:转义字元串
  • 外文名:Data Link Escape Character 

1英语解释

Data Link Escape Character 数据传送换码字元(通信控制用)
C语言转义

字元表

所有的转义字元和所对应的意义:
转义字元
意义
ASCII码值(十进制)
\a
响铃(BEL)
007
\b
退格(BS) ,将当前位置移到前一列
008
\f
换页(FF),将当前位置移到下页开头
012
\n
换行(LF) ,将当前位置移到下一行开头
010
\r
回车(CR) ,将当前位置移到本行开头
013
\t
水平制表(HT) (跳到下一个TAB位置)
009
\v
垂直制表(VT)
011
\\
代表一个反斜线字元''\'
092
\'
代表一个单引号(撇号)字元
039
\"
代表一个双引号字元
034
\0
空字元(NULL)
000
\ddd
1到3位八进制数所代表的任意字元
三位八进制
\xhh
1到2位十六进制所代表的任意字元
二位十六进制
注意:区分,斜槓:"/" 与 反斜槓:"\" ,此处不可互换

字元型常量

字元型常量所表示的值是字元型变数所能包含的值。大家可以用ASCII表达式来表示一个字元型常量,或者用单引号内加反斜槓表示转义字元。
'A', '\x2f', '\013';
其中:\x表示后面的字元是十六进制数,\0表示后面的字元是八进制数。
注意:在Turbo C 2.0中,字元型常量表示数的範围是-128到127,除非你把它声明为unsigned,这样就是0到255。
上面大家见到的\x,\n,\a等等都是叫转义字元,它告诉编译器需要用特殊的方式进行处理。

2程式语言

编辑
如HTML转义符、java 转义符、xml 转义符、 oracle 转义符、sql 转义符 、sqlserver 转义符、php 转义符、asp 转义符、vb转义符、 javascript 转义符等等,还有网址中的百分号。
例如,HTML的<; >;&;";&copy;对别是<,>,&,",©;的转义字元
XML只有5个转义符: <; >;&; "; &apos;

3作用介绍

编辑
转义字元串(Escape Sequence)也称字元实体(Character Entity)。在HTML中,定义转义字元串的原因有两个:第一个原因是像“<”和“>”这类符号已经用来表示HTML标籤,因此就不能直接当做文本中的符号来使用。为了在HTML文档中使用这些符号,就需要定义它的转义字元串。当解释程式遇到这类字元串时就把它解释为真实的字元。在输入转义字元串时,要严格遵守字母大小写的规则。第二个原因是,有些字元在ASCII字元集中没有定义,因此需要使用转义字元串来表示。
其实所有程式语言,拥有转义字元的原因基本上是两点:一、使用转义字元来表示字元集中定义的字元,比如ASCll里面的控制字元及回车换行等字元,这些字元都没有现成的文字代号。所以只能用转义字元来表示 。二、某一些特定的字元在编辑语言中被定义为特殊用途的字元。这些字元由于被定义为特殊用途,它们失去了原有的意义。比如说Html中,<被HTML定义为标籤的开始,所以当大家转入<时,HTML就会把它当作为开始,而不是当作一个<来看待。再如PHP 的双引号("),被PHP定义为字元串的外围标籤,所以如果你在一对双引号里面,还想要使用双引号,只能使用转义字元了。不然PHP就会报错了。
另外出于网站的安全。在数据写入资料库前,都会使用转义字元(函式)对一些敏感字元进行转义。这样做可以避免一些别有用心的人利用特殊符号的注入攻击。

4显示空格

编辑
通常情况下,HTML会自动截去多余的空格。不管你加多少空格,都被看做一个空格。比如你在两个字之间加了10个空格,HTML会截去9个空格,只保留一个。为了在网页中增加空格,你可以使用 &nbsp;表示空格。

5组成信息

编辑
转义字元串( Escape Sequence),即 字元实体( Character Entity)分成三部分:第一部分是一个&符号,英文叫ampersand;第二部分是实体(Entity)名字或者是#加上实体(Entity)编号;第三部分是一个分号。
比如,要显示小于号(<),就可以写 <; 或者 < 。
用实体(Entity)名字的好处是比较好理解,一看lt,大概就猜出是less than的意思,但是其劣势在于并不是所有的浏览器都支持最新的Entity名字。而实体(Entity)编号,各种浏览器都能处理。
提示:实体名称(Entity)是区分大小写的。
备注:同一个符号,可以用“实体名称”和“实体编号”两种方式引用,“实体名称”的优势在于便于记忆,但不能保证所有的浏览器都能顺利识别它,而“实体编号”则没有这种担忧,但它实在不方便记忆。

6转义符

编辑
转义序列 字元
\b 退格
\f 走纸换页
\n 换行
\r 回车
\t 横向跳格 (Ctrl-I)
\' 单引号
\"双引号
\\反斜槓
特殊转义字元列表

7url

编辑
web 开发中通过问号(?)方式在浏览器地址栏中传值时。浏览器是通过“&”来区分问号后的参数个数的。 如果出现传值参数中带有“&”时,在接受页面就会出现错误,类似如下请求路径:/next.jsp?param1=hendhs89&furej & param2=sss
参数param1中含有转义字元“&” ,这样会导致被请求页的参数接收错误。
在传值前 通过 java.net.URLEncoder.encode(param1) 编码处理后,可将转义字元转为16进制;
1. + URL 中+号表示空格 %2B
2. 空格 URL中的空格可以用+号或者编码 %20
3. / 分隔目录和子目录 %2F
4. ? 分隔实际的 URL 和参数 %3F
5. % 指定特殊字元%25
6. # 表示书籤 %23
7. & URL中指定的参数间的分隔设定%26
8. = URL中指定参数的值 %3D
9. ! URL中指定参数的值 %21
^ %5E
` %60
{ %7B
} %7D
| %7C
] %5D
[ %5B
" %22
< %3C
> %3E
\ %5

8如何避免

编辑
在编写网页时,如果直接在双引号之间输入路径,其中的“\”及其之后的文本易被误认为转义字元。为避免这一点,只需在字元串的引号前加“@”符号(不包括外侧引号)。如: @ "c:\ab\cd\ef.jpg" 。

转载请注明出处安可林文章网 » 转义字元串

相关推荐

    声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:fendou3451@163.com