如何使用正确的字符编码在 jQueryMobile 1.3.1 中通过 AJAX 加载 ISO-8859-1 内容?
Posted
技术标签:
【中文标题】如何使用正确的字符编码在 jQueryMobile 1.3.1 中通过 AJAX 加载 ISO-8859-1 内容?【英文标题】:How to load ISO-8859-1 content via AJAX in jQueryMobile 1.3.1 with correct character encoding? 【发布时间】:2013-04-26 18:16:02 【问题描述】:我有一个生成 ISO-8859-1 内容的 php 脚本 (CMS)(在后台还有一个包含 Latin1 数据的数据库)。 为了可视化移动设备上的数据,我使用 jQuery Mobile 1.3.1。一般来说,如果您在 html 中使用正确的元标记,则字符编码没有问题:
<meta charset="iso-8859-1" />
然而 jQuery Mobile 有这个默认设置:
$.mobile.ajaxEnabled = true;
因此,如果可能,jQuery Mobile 将通过 Ajax 自动处理链接点击和表单提交。
这是一个非常聪明的功能,但它会破坏一些特殊字符,例如德语变音符号,你会得到这些讨厌的字符:�
【问题讨论】:
【参考方案1】:问题在于 jQuery Mobile 1.3.1 在 ajax 请求上使用默认的 UTF-8。 解决问题有不同的解决方案:
为特定链接禁用 Ajax,这些链接重定向到带有特殊字符的内容:
data-ajax="false"
完全关闭ajax预加载功能:
$.mobile.ajaxEnabled = false;
关注recommendation 并手动设置正确的内容类型并覆盖 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');
);
最后一个解决方案确实对我有用。
【讨论】:
一个旧线程,但它拯救了我的一天!处理这个问题两天,我找到的答案被某人否决了!如果可以的话,我会投票两次!谢谢你!!!以上是关于如何使用正确的字符编码在 jQueryMobile 1.3.1 中通过 AJAX 加载 ISO-8859-1 内容?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 jqueryMobile 中正确创建类似于 iOS tabbarController 的 tabbar 控制器?