传递具有特殊字符的字符串

时间:2012-09-14 15:19:45

标签: php javascript jquery html web

我正在尝试使用空格和特殊字符传递字符串,但它的错误并没有任何效果。 例如

 <img onclick='addKeyword("celebritynews&gossip");' src="images/plus.png" >

但是'&amp;'内部字符串celebritynews&amp; gossip正在打破代码。

我发现问题出在addKeyword函数中,我使用以下代码来定义名为url的变量,

function addKeyword(categoryId){
var url = "addKeyword.php?uid=" + user_id + "&categoryId=" + categoryId + "&keyword=" + $("#keyword_" + categoryId).attr("value");
}

并且$(“#keyword_”+ categoryId)导致问题。有什么方法可以解决这个问题吗?

3 个答案:

答案 0 :(得分:3)

假设您在URL上传递字符串,则参数值需要进行URL编码。

...摘要编辑......

&被解释为HTML,必须采用HTML编码,特别是&amp;

HTML

<img onclick='addKeyword("celebritynews&amp;gossip");' src="images/plus.png" />

的JavaScript

使用encodeURIComponent(s)。

var url = "addKeyword.php?uid=" + encodeURIComponent(user_id) + "&categoryId=" + encodeURIComponent(categoryId) + "&keyword=" + encodeURIComponent($("#keyword_" + categoryId).attr("value")); 

答案 1 :(得分:1)

尝试

<img onclick="addKeyword('<?php echo htmlspecialchars('celebritynews&gossip'); ?>')" src="images/plus.png" >

答案 2 :(得分:0)

假设您正在将此文字写入网页,您可以使用htmlspecialchars确保在HTML中正确转义。

例如:

<?php echo htmlspecialchars("celebritynews&gossip"); ?>

这有帮助吗?