我最近将一些页面更改为通过ajax显示,现在我对为什么utf8编码现在显示一个问号在方框内感到困惑,而之前没有这种情况。
例如,原始页面是index.php。字符集明确设置为utf8并在中。然后我使用php查询数据库。
以下是原始的index.php页面:
“display_html()”函数调用Javascript页面,该页面使用jQuery Ajax调用来检索存储在PHP页面中的HTML,然后将HTML放置在ID为“main_container”的div中。我在jQuery中设置字符集为utf8,如下所示:
例如,原始页面是index.php。字符集明确设置为utf8并在中。然后我使用php查询数据库。
以下是原始的index.php页面:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Title here</title>
</head>
<body class='body_bgcolor' >
<div id="main_container">
<?php
Data displayed via php was simply a select statement that output the HTML.
?>
</div>
然而,当我添加一个通过ajax填充“main_container”的菜单时,所有的utf8编码都停止工作了。下面是新代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Title here</title>
</head>
<body class='body_bgcolor' >
<a href="#" onclick="display_html('about_us');"> About Us </a>
<div id="main_container"></div>
“display_html()”函数调用Javascript页面,该页面使用jQuery Ajax调用来检索存储在PHP页面中的HTML,然后将HTML放置在ID为“main_container”的div中。我在jQuery中设置字符集为utf8,如下所示:
$.ajax({
async: false,
type: "GET",
url: url,
contentType: "charset=utf-8",
success: function(data)
{
$("#main_container").html(data);
}
});
我做错了什么?