首页 > 解决方案 > IE11 标记中的法语字符未正确传递给脚本

问题描述

我有一个页面,它在传递给 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 系统根据实际资源的标题构建的,因此“剥离”奇怪的字符不是解决方案。

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

标签: jquerycharacter-encodinginternationalizationinternet-explorer-11

解决方案


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

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

如果仍然无法正常工作,请尝试使用以下方法之一:

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

参考这个链接


推荐阅读