当前位置: 首页 > 面试题库 >

使用ajax时UTF8编码不起作用

佴阳辉
2023-03-14
问题内容

最近,我更改了一些要通过ajax显示的页面,但对于为什么utf8编码现在在框内显示一个问号却不知道,我有些困惑。

举个例子。最初的页面是index.php。charset已显式设置为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);
            }
});

我究竟做错了什么?


问题答案:

编码不仅仅是指定meta标签和内容类型-
文件本身必须确实使用您指定的编码,否则您将获得mojibake。

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



 类似资料:
  • 我有这样一个csv文件 我在读书

  • 问题内容: 当我使用表单操作提交表单数据时,我能够将消息闪回。 查看表格: 注册.HTML 现在,我正在使用ajax,不再显示Flash消息。 我的观点来处理表格数据: 我的布局页面使用以下代码段进行闪烁: 问题答案: 闪烁的消息存储为会话的一部分,并在服务器端呈现模板时检索。客户端JavaScript无法访问会话cookie。即使是这样,也不容易在JavaScript中解码。即使您可以解码它,也

  • 问题内容: 尝试访问$ container的’.box’类时,在ajax调用内部使用(this)不起作用。 如果不清楚我要做什么,我会尝试更改动态元素的css。但是例如 根本没有调整css。如果我将其移到ajax,success部分之外,它可以工作,但是我无法获得“描述”。 问题答案: 你近了 在您使用它的上下文中,“ this”是指ajax请求,而不是发出事件的事物。要解决此问题,请在发出aja

  • 问题内容: 我正在尝试使用以下API获取实时汇率。 当我单击一个按钮时,它会提示速率并正常工作。我正在使用以下Ajax代码。 Ajax请求转到以下页面。 ,其中包含唯一的按钮,当单击该按钮时,将对此URL发出Ajax请求。 一切都很好。但是,当我将按钮类型从更改为时,问题就出现了,它不起作用。Ajax函数的错误部分中的 警报框只显示了一段时间,然后突然消失了 。我找不到任何可能导致无法完成此请求的

  • 问题内容: 我尝试进行后期呼叫并使用此值传递输入-“ä€爱لآहที่”,我收到了错误消息 这是我的代码 它在conn.getInputStream()上失败了; 内容的价值是 在输入为字符串或整数的情况下工作 当我添加语句 我收到了不同的消息 问题答案: 请尝试以下代码: 您应该使用JSONObject传递参数 输入,请尝试 如果输出是:???????,那么不用担心,因为您的输出控制台不支持UT

  • 问题内容: 我正在将项目从Ant转换为Maven,并且在处理UTF-8字符的特定单元测试中遇到问题。问题与以下字符串有关: 问题是单元测试失败,因为字符串的读取方式如下: java类另存为UTF-8,并且我还在pom.xml中将构建编码指定为UTF-8。 这是我的 pom.xml 的摘录: 我在这里想念什么吗?如果有人可以在这里帮助我,那就太好了。 更新资料 关于测试代码: 以下逻辑不是真正相关的