我有一个 PHP 脚本(CMS),它生成 ISO-8859-1 内容(在后台还有一个包含 Latin1 数据的数据库)。 为了在移动设备上可视化数据,我使用 jQuery Mobile 1.3.1。一般来说,如果您在 HTML 中使用正确的元标记,则字符编码不会出现问题:
<meta charset="iso-8859-1" />
然而 jQuery Mobile 有这个默认设置:
$.mobile.ajaxEnabled = true;
因此,如果可能,jQuery Mobile 将通过 Ajax 自动处理链接点击和表单提交。
这是一个非常聪明的功能,但它破坏了一些特殊字符,例如德语变音符号,你会得到这个令人讨厌的字符:�
最佳答案
问题是 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'); } });
最后一个解决方案对我有用。
关于jquery - 如何在 jQueryMobile 1.3.1 中通过 AJAX 使用正确的字符编码加载 ISO-8859-1 内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16340344/