【问题标题】:JqueryMobile ajax load special characters in utf-8 not displayingJqueryMobile ajax在utf-8中加载特殊字符不显示
【发布时间】:2014-09-01 12:54:39
【问题描述】:

我的页面内容在大屏页面正常显示,但是从移动(jquerymobile)应用页面访问时,特殊字符不显示。我将 JqueryMobile 1.4.0 与 Jquery 1.7.2 一起使用(全部来自谷歌托管的库)。

例如,“Call Center Agent - ADSL (INBOUND AND OUTBOUND)”在大屏幕应用上显示正常,但变为“Call Center Agent - ADSL (INBOUND AND OUTBOUND)”在移动页面上。

我尝试了suggestion,它显示了类似的问题,但它没有解决我的问题。

我的移动应用 html sn-p 是:

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8"> 
<meta name="viewport" content="width=device-width, initial-scale=1">
....

php文件头sn-p:

@header("Content-Type: text/html; charset=utf-8");
...

我也尝试了设置 ajaxsetup 的建议 附加的 jquery sn -p 添加到 setup ajax:

$.ajaxSetup({
  contentType: 'charset=utf-8',
  beforeSend: function(jqXHR) {
    jqXHR.overrideMimeType('charset=utf-8');
  }
});

上述建议均无帮助。

任何克服了这个问题的人都可以提出建议,最受赞赏的替代技术。

【问题讨论】:

  • 你应该使用比jquery 1.7更高的版本,使用1.9更好。
  • @Omar 谢谢。我尝试了 JQ 1.9.0 和 1.11.1,但似乎都没有解决我的问题。

标签: jquery jquery-mobile utf-8 jquery-mobile-ajax


【解决方案1】:

感谢您提供的建议,但恐怕我自己无意中“制造”了问题:(。(原始工作)数据连接访问是使用 PDO 完成的,没有设置“字符集”,而第二个(通过移动应用程序)已设置“字符集”。 所以删除了字符集以符合前者。

(通过移动应用有问题)PDO 连接代码:

try {
    $db = new PDO(
        "mysql:host=$db_host;port=$db_port;dbname=$db_name;charset=utf-8",
        $db_user, $db_pass
    );
    $db->query("SET NAMES 'utf8'");
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}...

修正的 PDO 代码:

try {
    $db = new PDO(
        "mysql:host=$db_host;port=$db_port;dbname=$db_name;",
        $db_user, $db_pass
    );
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}...

希望这可以帮助某人解决类似的问题。

【讨论】:

    猜你喜欢
    • 2012-01-11
    • 1970-01-01
    • 1970-01-01
    • 2015-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-27
    相关资源
    最近更新 更多