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

2019-09-01 18:38发布

我有一个PHP脚本(CMS),其生成ISO-8859-1的内容(在背景中也有与Latin1的数据的数据库)。 为了形象化在移动设备上的数据使用jQuery移动1.3.1。 一般有与你使用正确的meta标签在你的HTML字符编码没有问题:

<meta charset="iso-8859-1" />

然而jQuery Mobile的已经得到了这个默认设置:

$.mobile.ajaxEnabled = true;

所以,jQuery Mobile的会自动通过Ajax,可以在处理链接的点击和表单提交。

这是一个非常聪明的功能,但它破坏了一些特殊的字符,如德国umlaute,你会得到这个讨厌的人物:

Answer 1:

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

  1. 阿贾克斯禁用特定链接,重定向到包含特殊字符的内容:

     data-ajax="false" 
  2. 完全关闭的AJAX预加载功能:

     $.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'); } }); 

最后的解决方案确实为我工作。



文章来源: How to load ISO-8859-1 content via AJAX in jQueryMobile 1.3.1 with correct character encoding?