我有三个文件。
index.php => javascript.js的输出就在这里。
javascript.js =>包含ajax post请求php文件从数据库中获取一些数据。
ajax.php =>基本上从数据库中获取数据并将其返回给javascript.js
一旦所有内容都正常运行且数据库中没有特殊字符,就会出现问题。而不是像'à'=>这样的特殊字符。问号出现了。
我正在使用集合名称为utf8的PDO,在数据库中所有内容都在utf8_general_ci中,当我尝试测试ajax.php文件的数据时,一切都很好。一旦将数据从ajax.php文件发送回javascript.js文件就会出现问题,现在当我是alert()数据时,会出现问号而不是特殊字符。
我谷歌搜索了几个小时,但我找不到解决问题的方法。我该怎么做,我应该改变什么?文件也使用utf8进行编码。还包括Utf8元标记。
Ajax.php
if (isset($_POST['cat_id'])) {
$cat_id = (int) $_POST['cat_id'];
if ($cat_id == 0) { $cat_id = 1; }
$data = $system->grabSubcategories($cat_id, true);
$final_output = '';
if ($system->getLanguage() == 'en') {
foreach ($data as $item) {
$final_output .= '<option value="'. $item->id .'">'. strtolower($item->name) .'</option>';
}
} else {
foreach ($data as $item) {
$final_output .= '<option value="'. $item->id .'">'. strtolower($item->name_fr) .'</option>';
}
}
echo $final_output;
}
javascript.js
function chooseCategory() {
var cat_id = $('#placead_category').val();
$('#placead_subcategory').empty();
$.ajax({
url: 'ajax.php',
type: 'POST',
contentType: "application/x-www-form-urlencoded;charset=utf-8",
data: { cat_id:cat_id },
success:function(data){
$('#placead_subcategory').append(data);
}
});
}
index.php已经开始了:
<!-- Include Meta -->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="Content-Language" content="en"/>
<meta name="author" content="some author..."/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>some title...</title>
<link rel="Shortcut icon" href="" />
<!-- /Include Meta -->