jquery - 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 系统根据实际资源的标题构建的,因此“剥离”奇怪的字符不是解决方案。
解决此问题的正确方法是什么?
解决方案
请检查 HTTP 标头中的字符集,确保您提供了字符集,如下所示:
<META http-equiv=Content-Type content="text/html; charset=utf-8">
如果仍然无法正常工作,请尝试使用以下方法之一:
- 禁用 Internet Explorer 中的自动选择设置。
- 在 HTTP 标头中提供字符集。
- 将 META 标记移动到由 MSHTML 解析的第一千字节数据内。虽然我们不知道解析器一次读取多少数据,但这个位置将解决问题。
- 增加服务器初始 HTTP 响应的大小。初始大小应至少为 1 KB。
- 确保系统区域设置与 HTML 页面中指定的 META 标记的字符集相匹配。
参考这个链接。
推荐阅读
- postgresql - Golang Postgres Squirrel 语法错误 (SQLSTATE 42601)
- r - 如何使用 processR 包调整有节制的调解模型?
- python - 如何在该程序中实施财务功能?
- javascript - Axios 不向表中插入值
- python - 使用 Python 获取一些受保护文件系统窗口的副本?
- swiftui - 无法检索区域信息 - 监控不起作用
- c++ - 为什么编译器允许默认构造函数使用引用成员初始化类
- flex-lexer - 带有自动机的柔性扫描仪推回溢出
- java - Tomcat 服务器无响应“http-nio-80-Acceptor-0”
- python - 可能导致此错误的原因:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 568: invalid start byte