特殊字母在表单中显示为HTML实体

时间:2018-10-03 11:17:04

标签: javascript jquery serialization utf-8 ascii

我正在尝试将信息(名称和电子邮件)从一种形式发送到另一页上的另一种形式。问题在于,当信息发送到第二种形式时,任何特殊字母(如å,ä,ö等)都将显示为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。 (不带')。电子邮件显示正确。

知道发送问题还是接收问题?

谢谢!

1 个答案:

答案 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);