mal*_*kan 1 jquery encoding jquery-mobile
我有一个生成ISO-8859-1内容的PHP脚本(CMS)(在后台还有一个带有Latin1数据的数据库).为了可视化移动设备上的数据,我使用jQuery Mobile 1.3.1.通常,如果在HTML中使用正确的元标记,则字符编码没有问题:
<meta charset="iso-8859-1" />
Run Code Online (Sandbox Code Playgroud)
但是jQuery Mobile有这个默认设置:
$.mobile.ajaxEnabled = true;
Run Code Online (Sandbox Code Playgroud)
因此,jQuery Mobile将尽可能自动处理链接点击并通过Ajax形成提交.
这是一个非常聪明的功能,但它会摧毁一些特殊的角色,如德国的变形金刚,你会得到这个令人讨厌的角色:
问题是jQuery Mobile 1.3.1在ajax请求上使用默认的UTF-8.有不同的解决方案来解决这个问题:
禁用特定链接的Ajax,该链接重定向到包含特殊字符的内容:
data-ajax="false"
Run Code Online (Sandbox Code Playgroud)完全关闭ajax预加载功能:
$.mobile.ajaxEnabled = false;
Run Code Online (Sandbox Code Playgroud)请遵循此建议并手动设置正确的内容类型并覆盖mime类型:
$.ajaxSetup({
contentType: 'application/x-www-form-urlencoded; charset=ISO-8859-1',
beforeSend: function(jqXHR) {
jqXHR.overrideMimeType('application/x-www-form-urlencoded; charset=ISO-8859-1');
}
});
Run Code Online (Sandbox Code Playgroud)最后的解决方案对我有用.