Я недавно изменил некоторые из своих страниц, чтобы они отображались через ajax, и у меня возникло некоторое недоумение, почему кодировка utf8 теперь отображает знак вопроса внутри поля, тогда как раньше это не было.
Пример для примера. Исходной страницей был index.php. charset был явно установлен в utf8 и находится в <head>
. Затем я использовал 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>
Однако, когда я сделал изменение, добавив меню, которое заполняло "main_container" через ajax, вся кодировка 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 для извлечения html, хранящегося на странице php, а затем помещает html в div с идентификатором "main_container". Я устанавливаю кодировку в JQuery, чтобы быть UTF8, как:
$.ajax({
async: false,
type: "GET",
url: url,
contentType: "charset=utf-8",
success: function(data)
{
$("#main_container").html(data);
}
});
Что я делаю не так?