我遇到了通過AJAX和jQuery顯示重音字符的問題。我會更詳細地解釋它。JavaScript,jQuery,AJAX和重音字符:如何讓它們工作?
我有一個頁面,它有一個input
字段。當我填寫4個字符(必須是ICAO機場代碼)字段時,它會通過AJAX調用PHP腳本。該腳本如下:
文件:ajax.airport.php
<?php
include("mysqlexec.inc.php");
include("functions.inc.php");
if(isset($_GET['icao'])){
$airportData = GetAirportInfo($_GET['icao']);
if (!empty($airportData["Name"])) {
echo $airportData["Name"];
} else {
echo "Not found!";
}
}
?>
功能GetAirportInfo();
使一個HTTP請求到Our Airports網站,其中顯示機場的名字。如果你可以檢查this example page,你可能會注意到,ICAO代碼爲SBGL,這是通過在input
用戶和GetAirportInfo();
功能(這是一個數組的元素)的迴歸進入將距離Galeão - AntônioCarlos Jobim Intl,帶有一些重音字符。
問題是,當在文件上回顯此問題時,出現Gale o - Ant nioCarlos Jobim Intl而不是。
所有文件都是UTF-8
(不含BOM)。我嘗試了幾個函數(PHP和JS類型),但是這被證明是不成功的。
輸入執行的jQuery函數是這樣的:
function showAirport(icao, dest) {
var icao=icao.toUpperCase();
if (icao.length < 4) {
$("#"+dest).html("");
} else {
$("#"+dest).html('<img src="images/loadingsm.gif"/>');
$.ajax({
type : "GET",
url : "ajax.airport.php",
dataType: "html",
data : { icao: icao },
success : function (result) {
$("#"+dest).html(result);
},
});
}
};
任何幫助是值得歡迎的。
數據庫怎麼樣?記錄編碼是否正確?順便說一下,在示例頁面,編碼似乎對我來說是正確的(mac os,chrome) – tanaydin
實際上,這些數據沒有被記錄在任何數據庫中。意圖僅供用戶交叉檢查,並意識到他輸入了正確的國際民航組織代碼。 - 示例頁面不是我的,它來自我的機場網站,我從那裏獲取信息。我們的機場不是由我維護的:它只是從我提取數據的地方獲得他們的許可。 –
你試過了嗎[mb_detect_encoding](http://php.net/mb_detect_encoding)?或者你可以嘗試像 echo utf8_encode($ airportData [「Name」]); – tanaydin