如何通过jQueryMobile 1.3.1中的AJAX加载带有正确字符编码的ISO-8859-1内容?

我有一个生成ISO-8859-1内容的PHP脚本(CMS)(在后台还有一个带有Latin1数据的数据库)。 为了可视化移动设备上的数据,我使用jQuery Mobile 1.3.1。 通常,如果在HTML中使用正确的元标记,则字符编码没有问题:

 

但是jQuery Mobile有这个默认设置:

 $.mobile.ajaxEnabled = true; 

因此,jQuery Mobile将尽可能自动处理链接点击并通过Ajax表单提交。

这是一个非常聪明的function,但它会摧毁一些像德国变形金刚这样的特殊角色,你会得到这个令人讨厌的角色:

问题是jQuery Mobile 1.3.1在ajax请求上使用默认的UTF-8。 有不同的解决方案来解决这个问题:

  1. 禁用特定链接的Ajax,该链接重定向到包含特殊字符的内容:

     data-ajax="false" 
  2. 完全关闭ajax预加载function:

     $.mobile.ajaxEnabled = false; 
  3. 请遵循此建议并手动设置正确的内容类型并覆盖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'); } }); 

最后的解决方案对我有用。