2014-07-11 54 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); 
}... 

希望這可以幫助別人解決類似的問題。