IE11标记中的法语字符未正确传递给脚本

时间:2019-05-10 15:52:36

标签: jquery character-encoding internationalization internet-explorer-11

我有一个页面,该页面在传递给jquery加载方法的链接上使用一些数据属性。它们在英语和chrome / firefox / edge上都可以正常工作,但是在IE11中,法语中只有数据别名中的特殊字符无法正确传递给我的php处理器。
此别名:

alias  = 2019-apr-domain-annonce-ses-résultats-pour-le-premier-trimestre-de-2019

以以下方式发送到php连接器:

[alias] => 2019-apr-domain-annonce-ses-r▒sultats-pour-le-premier-trimestre-de-2019

该脚本可用于其他所有浏览器IE11只是没有正确传递FR字符:

$('.no-link').on('click', function(event){
        event.preventDefault();
        var alias = $(this).data('alias');
        var resource = $(this).data('resource');
        var panels = $('.tab-pane'), i;
        var pdf = $(this).data('pdf');
        if(pdf.length > 0){
            window.open(pdf, '_blank'); 
        }else{
            $( "#article > span" ).load( "/insightsconnector/?resource="+resource+"&alias="+alias, function( response, status, xhr ) {
                console.log('loading article');
            });
        }
    })

HTML元素示例:

<a 
href="a-propos-de-nous/nouvelles/2019/2019-apr-domain-annonce-ses-résultats-pour-le-premier-trimestre-de-2019/" 
class="article hero-article no-link full-box idx1" 
data-alias="2019-apr-domain-annonce-ses-résultats-pour-le-premier-trimestre-de-2019" 
data-pdf="" 
data-resource="75348699262731">
    ....
</a>

别名是由CMS系统根据实际资源的标题构建的,因此“剥离”奇怪的字符不是解决方案。

解决此问题的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

请检查HTTP标头中的字符集,确保已提供字符集,如下所示:

<META http-equiv=Content-Type content="text/html; charset=utf-8">

如果仍然无法运行,请尝试使用以下方法之一:

  • 在Internet Explorer中禁用自动选择设置。
  • 在HTTP标头中提供字符集。
  • 将META标记移至MSHTML解析的数据的第一个千字节之内。尽管我们不知道解析器一次读取多少数据,但此位置可以解决问题。
  • 增加服务器的初始HTTP响应的大小。初始大小至少应为1 KB。
  • 确保“系统区域设置”设置与HTML页面中指定的META标记的字符集匹配。

参考this link