J'ai récemment modifié certaines de mes pages pour les afficher via ajax et j'ai une certaine confusion quant au fait que l'encodage utf8 affiche maintenant un point d'interrogation à l'intérieur d'une boîte, alors qu'avant t.L'encodage UTF8 ne fonctionnait pas lors de l'utilisation d'ajax
Pré exemple. La page oringale était index.php. charset a été défini explicitement sur utf8 et se trouve dans le <head>
. J'ai ensuite utilisé php pour interroger la base de données
Heres est la page index.php originale:
<!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>
Cependant, quand je fait le changement d'ajouter un menu qui a peuplé la « main_container » via ajax tous les UTF8 l'encodage a cessé de fonctionner. Voici le nouveau code:
<!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>
La fonction « display_html() » appelle la page javascript qui utilise l'appel ajax jquery pour récupérer le code HTML stocké dans une page php, puis place le code html à l'intérieur du div avec un id de " main_container ". Je configure le jeu de caractères dans jquery pour être utf8 comme:
$.ajax({
async: false,
type: "GET",
url: url,
contentType: "charset=utf-8",
success: function(data)
{
$("#main_container").html(data);
}
});
Qu'est-ce que je fais mal?
je pense est un ** BOM ** Byte Order Mark problème http://www.google.it/search?hl=it&q= + Byte + Order + Mark + (BOM) & aq = f & aqi = & aql = & oq = & gs_rfai = –