我正在尝试将信息(名称和电子邮件)从一种形式发送到另一页上的另一种形式。问题在于,当信息发送到第二种形式时,任何特殊字母(如å,ä,ö等)都将显示为HTML实体(ö变成&ouml)。我是一个初学者,没有构建自己发送信息的表单,但是我相信它是通过jQuery发送的。在将表单发送到另一页之前,先对其进行验证,序列化和解码。代码如下:
/*Form Submit*/
$('#button').click(function(){
if (validateForm()) {
var data = $("#form-signup").serialize();
var dataDecoded = decodeURI(data);
var regUrl = 'mypage.com/registration' + '&' + dataDecoded;
$("#link").attr("href", regUrl);
if (($('#checkBox').is(':checked'))) {
$('#checkBox').css('outline', 'none');
return true;
} else {
$('#checkBox').css('outline', '1px solid red');
$('#checkbox-message').next().addClass('checkbox-error');
$('#checkbox-message').next().text('Please Tick the Agree to Terms of Use');
return false;
}
}
});
在控制台中,所有字母和特殊字符以及第二页的URL都可以正常显示。该URL变为:
mypage.com/registration?&firstName=Björn&lastName=Björngård&email=bjorn%40mail.com。
但实际上,名称显示为:Bj&amp ;; ouml'; rn Bj&amp'; ouml'; rng&amp'aring'; rd。 (不带')。电子邮件显示正确。
知道发送问题还是接收问题?
谢谢!
答案 0 :(得分:0)
使用功能:
unescape(Your_String_Here);
其纯JavaScript函数url可以解码任何值
请参阅this
更新
也请检查:
var parser = new DOMParser;
var dom = parser.parseFromString(your_string);
var decodedString = dom.body.textContent;
alert(decodedString);