我遇到了一个问题,无法正确显示包含转义字符的值(例如,撇号存储为
我的数据库中存储的项目具有相应地转义的字符(
我知道如果我只是简单地进行替换,我可以正确地打印出来,但这样做会允许HTML代码的注入,这就是为什么我首先转义字符串的原因。
补充一下:首先,我对我的初始帖子中的错误表示歉意。经过仔细检查,在我使用$().html()的情况下,字符串会正确地打印出来。当它们没有正确打印时,是我在使用像下面这样的代码。
在这种情况下,文本 ">" 被显示为 ">"。有没有什么办法可以修复这个问题?
\'
而不是'
,括号则存储为>
和<
而不是>
和<
)。我的数据库中存储的项目具有相应地转义的字符(
' < >
分别转义为\' < >
)。当我尝试使用JavaScript动态添加它们到页面时,在Firefox中以转义形式打印出来,而不像在IE中返回其正常值(HTML中打印出<
而不仅仅是<
)。<html>
<head>
<script type="text/javascript">
$(document).ready(function() {
var str = ">";
$(document.body).html(str);
});
</script>
</head>
<body>
</body>
</html>
我知道如果我只是简单地进行替换,我可以正确地打印出来,但这样做会允许HTML代码的注入,这就是为什么我首先转义字符串的原因。
补充一下:首先,我对我的初始帖子中的错误表示歉意。经过仔细检查,在我使用$().html()的情况下,字符串会正确地打印出来。当它们没有正确打印时,是我在使用像下面这样的代码。
var str = ">";
$('#inputField').val(str);
在这种情况下,文本 ">" 被显示为 ">"。有没有什么办法可以修复这个问题?
$
字符是错误的吗?你一开始用的是&
,然后变成了$
。你使用了两种不同的编码吗? - James Montagne$(document.body).html(" 3 is > 1");
它完美地工作。http://jsfiddle.net/xJwuD/ - Ruan Mendes