2014-07-11 21 views
1

我的页面内容在大屏幕页面上显示正常,但从移动(jquerymobile)应用程序页面访问时,不显示特殊字符。即时通讯使用JqueryMobile 1.4.0与Jquery 1.7.2(全部来自谷歌托管库)。JqueryMobile ajax加载utf-8中的特殊字符不显示

例如“呼叫中心座席 - ADSL(入站和出站)”大屏幕上的应用程序读取确定,但就成为移动页上的“呼叫中心座席€“ADSL(入站和出站)”。

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

我的移动应用程序的HTML片段是:

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

php文件头片段:

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

我也试过建议设置ajaxsetup 附加jQuery的片段加入到设置AJAX:

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

没有提到的建议帮助编辑。

任何人谁可以请建议如何,和替代技术最受赞赏。

+0

你应该使用比jquery 1.7更高的版本,使用1.9更好。 – Omar

+0

@Omar谢谢。我尝试了JQ 1.9.0和1.11.1,但都没有解决我的问题。 – luhfluh

回答

0

感谢您提供的建议,但我害怕我自己无意中“自己创建”了这个问题:(。(原始工作)数据连接访问是用PDO完成的,没有设置'charset',而第二个移动应用程序)已成立“字符集” 所以去除的字符集与前符合

(通过移动应用程序有问题),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); 
}... 

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