IT技术博客大学习 共学习 共进步

都是转义惹的祸

PHPor 的Blog 2009-12-01 16:32:57 浏览 2,864 次
在做一个跳转页面时出现一个bug,是引号引起的,原始代码基本如下:

以下是代码片段:
<html>
<head>
<title>redirect</title>
<meta http-equiv="refresh" content="0; url=&#39;http://www.baidu.com/?\40abc&#39;">
</head>
<body bgcolor="#ffffff" text="#000000" link="#0000cc" vlink="#551a8b" alink="#ff0000">
<script type="text/javascript" language="javascript">
location.replace("http://www.baidu.com/?\40abc");
</script>
</body>
</html>


这里的蓝色的双引号没有影响url中反斜线的转义,可能是因为&#39;
的缘故;如果写为:
以下是代码片段:
<meta http-equiv="refresh" content=‘0; url=&#40;http://www.baidu.com/?\40abc&#40;’>

发现是不行的

javascript中的红色的双引号使得里面的反斜线有了转移的作用,所以,这里的双引号要修改为单引号

建议继续学习

  1. bash shell里反斜杠(backslash)和字符串原文输出(无转义) (阅读 7,685)
  2. grep 正则表达式选项要记得转义 (阅读 6,445)
  3. 正则转义符汇总 (阅读 4,322)
  4. 添加URL/HTML字符转义功能 (阅读 3,144)
  5. 账号密码包含反斜线时怎么办 (阅读 2,923)
  6. 递归字符转义 (阅读 2,844)