输出

时间:2015-09-27 14:23:30

标签: javascript php jquery ajax encoding

我有三个文件。

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 -->

0 个答案:

没有答案