这是textarea
使用tinyMCE
:
helloóóó
我使用tinyMCE
从textarea获取内容并将其解析为我当前的字符串:
行动=更新&安培;范围=设置和ID = content_home&安培;含量=helloóóó
当我通过POST
向服务器发送此消息时,我的content
值会在hello
后helloóóó
时结束。
我能以某种方式解决这个问题吗?对此有特殊的方法吗?
这是我构建字符串的方式:
var textarea = $(this).parent().find('.tinymce').first()
if (textarea.length) {
var content = tinyMCE.get(textarea.attr('id')).getContent();
data += '&content=' + content;
}
$.ajax({
type : "POST",
url : url,
data : data,
dataType : "json",
success : function(back) {}
});
答案 0 :(得分:3)
正如另一个答案指出你需要使用encodeURIComponent
data += '&content=' + encodeURIComponent(content);
但更好的选择就是将数据放入对象中,让jQuery为您处理。
var data = {
action : "update",
range : "settings"
/* your other fields */
};
data.content = content;
$.ajax({
type : "POST",
url : url,
data : data,
dataType : "json",
success : function(back) {}
});
答案 1 :(得分:2)
您需要对值进行URL编码。尝试使用encodeURIComponent()方法。
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent
答案 2 :(得分:1)
ó
是ó
的html编码版本。您可以使用html_entity_decode
对其进行解码。
我不确定为什么数据会被HTML编码,这似乎是一个错误。我希望它是URL编码的。当您收到数据时,它将被解码。至少它需要进行一次URL编码,HTML编码是可选的。
// url encoded:
action=update&range=settings&id=content_home&content=hello%C3%B3%C3%B3%C3%B3
// url encoded and html encoded:
action=update&range=settings&id=content_home&content=hello%26oacute%3B%26oacute%3B%26oacute%3B