Недавно я изменил некоторые из моих страниц, которые будут отображаться через ajax, и у меня возникает некоторая путаница относительно того, почему в кодировке utf8 теперь отображается вопросительный знак внутри поля, тогда как перед тем, т.Кодировка UTF8 не работает при использовании ajax
Для примера. На странице oringal был index.php. charset была явно установлена в utf8 и находится в <head>
. Затем я использовал PHP для запросов к базе данных
Heres оригинальный 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()» функция вызывает яваскрипт страницы, которая использует 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);
}
});
Что я делаю неправильно?
я думаю, что это проблема ** BOM ** Byte Order Mark http://www.google.it/search?hl=it&q= + Byte + Order + Mark + (BOM) & aq = f & aqi = & aql = & oq = & gs_rfai = –