ajax - 使用ajax时UTF8编码不起作用

标签 ajax utf-8 jquery

我最近将一些页面更改为通过 ajax 显示,但我对为什么 utf8 编码现在在框内显示问号而以前没有显示问号感到困惑。

举个例子。原始页面是index.php。字符集显式设置为 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>

但是,当我进行更改以添加通过 ajax 填充“main_container”的菜单时,所有 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 调用来检索存储在 php 页面中的 html,然后将 html 放置在 id 为“main_container”的 div 中。我将 jquery 中的字符集设置为 utf8,如下所示:

$.ajax({
        async: false,
        type: "GET", 
        url: url, 
        contentType: "charset=utf-8", 
        success: function(data)
            { 
                $("#main_container").html(data);
            }
});

我做错了什么?

最佳答案

编码不仅仅是指定元标记和内容类型 - 文件本身必须真正采用您指定的编码,否则您将得到 mojibake .

检查所有内容、数据库、数据库连接、表列是否都使用 UTF-8。检查您包含的所有静态文件是否也以 UTF-8 编码。

关于ajax - 使用ajax时UTF8编码不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2877852/

相关文章:

java - Struts 2如何支持多种语言的utf-8编码

php - 将 this.value 传递给包含空格的 AJAX javascript 函数,不返回任何结果

javascript - Datatables 1.10 添加编辑和删除按钮列

python - 使用 python 抓取 ajax 页面

python - 在 Python 中对字符串进行编码

mysql - MySQL中如何清理含有特殊字符的数据

javascript - 如何使用 javascript 从 srcset 中选择正确的 src

jquery - 在 "this"jquery 上方查找同级

HTML 元素上的 Javascript onkeydown 事件

javascript - 如何在 Javascript 中处理 Ajax 生成的表单?