我在通过 AJAX 和 jQuery 显示重音字符时遇到问题。我会更详细地解释它。
我有一个页面,其中有一个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!";
}
}
?>
该函数向显示机场名称的Our Airports网站GetAirportInfo();
发出 HTTP 请求。如果您可以查看此示例页面,您可能会注意到 ICAO 代码是SBGL,它是由用户输入的,并且函数(它是数组的元素)的返回将是Galeão-Antônio Carlos Jobim Intl,带有一些重音字符。input
GetAirportInfo();
问题是,当在文件中回显此内容时,却出现了 Gale�o - Ant�nio Carlos 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);
},
});
}
};
欢迎任何帮助。