我有一个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,你会得到这个讨厌的人物:
问题是,jQuery Mobile的1.3.1对Ajax请求的默认UTF-8使用。 有不同的解决方案来解决这个问题:
阿贾克斯禁用特定链接,重定向到包含特殊字符的内容:
data-ajax="false"
完全关闭的AJAX预加载功能:
$.mobile.ajaxEnabled = false;
按照此建议 ,并手动设置正确的内容类型和覆盖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?