web开发中的特殊字符
URL中的特殊字符
URL中的特殊字符是不能再URL中直接传递的,需要进行
编码。编码的格式为:%加字符的ASCII码,即一个百分号%,后面跟对应字符的ASCII(16进制)码值。
字符 名称 16进制值
+ URL中的+表示空格 %2B
空格 URL中的空格可以用+号或者编码 %20
/ 分割目录和子目录 %2F
? 分隔实际的URL和字符 %3F
% 指定特殊字符 %25
# 表示
书签,URL传输参数时会自动截断#后面内容 %23
& URL中的参数分隔符 %26
= UEL中指定的参数值 %3D
例:要传递字符串“this%is#te=st&o k?+/”作为参数t传给te.asp,则URL可以是:te.asp?t=this%25is%23te%3Dst%26o%20k%3F%2B%2F或者te.asp?t=this%25is%23te%3Dst%26o+k%3F%2B%2F(空格可以用%20或+代替)
java中URL的编码和解码函数:java.net.URLEncoder.encode(String s)和java.net.URLDecoder.decode(String s);在
javascript中URL的编码和解码函数分别是escape(String s)和unescape(String s) ;
HTML中的需要
转义字符
字符 转义字符 描述
& & 和
< < 小于号
> > 大于号
“ " 双引号
‘ ' 单引号
空格 空格
? © 版权符
? ® 注册符
前者为字符转义序列,后者为数字转义序列。数字转为字符对应的ASCII码值。例如 & lt; font >显示为,<font>,若直接写为则被认为是一个链接签。
需要说明的是:
a.转义序列各字符间不能有空格;
b.转义序列必须以";"结束;
c.单独的&不被认为是转义开始;
d.区分大小写。
另一个需要转义的字符是引号,它的转义序列为"" "或"""
HTML使用的字符集是ISO &859 Larin-1字符集,该字符集中有许多标准键盘上无法输入的字符。对这些特殊字符只能使用转义序列。
XML中的特殊字符
字符 转义字符 描述
& & 和
< < 小于号
> > 大于号
“ " 双引号
‘ ' 单引号
不合法的XML字符必须被转义,如果在
XML文档中使用类似"<"的字符,那么
解析器将会出现
错误,因为解析器会认为这是一个新元素的开始。所以不应该像下面那样书
写代码:
<message>if salary < 1000 then</message>
为了避免出现这种情况,必须将字符"<"转换成实体,像下面这样:
<message>if salary < 1000 then</message>
Javascript中的转义字符
转义序列 字符
\b 退格
\f 走纸换页
\n 换行
\r 回车
\t 横向跳格
\” 双引号
\’ 单引号
\\ 反斜杠
var txt=”We are the so-called “Vikings” from the north.”
document.write(txt)
在JavaScript中,字符串以双引号或单引号开始和结束。这就意味着上面的字符串会被砍为: We are the so-called
要解决这个问题,需要在Viking前后的双引号前面加上反斜杠 (\),这样就把每一个双引号转换为了一个字符串文字:
var txt=”We are the so-called \”Vikings\” from the north.”
document.write(txt)
现在JavasScript可以正确显示字符串:We are the so-called“Vikings” from the north.
这里是另外一个
例子:
document.write (“You \& me are singing!”)
上面的例子将产生以下输出:
You & me are singing!
Cookie中的特殊字符
版本0 :由Netscape公司制定的,也被几乎所有的浏览器支持. Java中为了保持兼容性,目前只支持到版本0, Cookie的内容中不能空格,方括号,圆括号,等于号(=),逗号,双引号,斜杠,问号,@符号,
冒号,分号。
版本1 :根据RFC 2109(http://www.ietf.org/rfc/rfc2109.txt)文档制定的.放宽了很多
限制.上面所限制的字符都可以使用.但为了保持兼容性,应该尽量避免使用这些特殊字符。