3

我需要将带有 Ajax 函数的字符串从 Jquery 发送到我的 javascript 文件。问题是我在需要接收的字符串之前得到了一组奇怪的问号/菱形块。

         (function( $ ) 
 {
  $.fn.CallPhpClass = function(className, functionName, parameters, destination)
  {
      return this.each(function()
      {
        if (destination === undefined) {
            destination = $(this);
        };

        $.ajax({
        type : 'POST',
        url : 'php/executer.php',
        data : { className : className, functionName : functionName , parameters : parameters},
        dataType:'text',
        cache: false,
        success : function(data) {
            if (className == "User" && functionName == "logout")
            {
                getMenu();
                return;
            }
            if (className == "User" && functionName == "login")
            {
                getMenu();
                return;
            }
            if (className == "User" && functionName == "lastView")
            {
                $('#main-content').CallPhpClass(data, 'view');
                return;
            }
            if (data.search('alert alert-error') != -1 || data.search('alert alert-success') != -1)
            {
                $('#main-content').CallPhpClass('User', 'lastView');
                destination = $('#error-box');
            }

            if(destination != false)
            {
                destination.html(data);
            }

        },
        error : function(data) {
            console.info(data);
        }
    });
});

}
})

设置类的代码是:

            if (className == "User" && functionName == "lastView")
            {
                $('#main-content').CallPhpClass(data, 'view');
                return;
            }

有了萤火虫,我收到了这个:

萤火虫视图

所有字符集都在 UTF-8 上,我不知道我做错了什么!

有人能帮我吗?

亲切的问候,

4

3 回答 3

3

检查元标记的字符集

<meta http-equiv="content-type" content="text/html;charset=UTF-8" />

设置executer.php文件的响应头

header('Content-Type: text/html; charset=UTF-8');

在发送 Ajax 请求时使用contentType并传递字符集

$.ajax({
        type : 'POST',
        url : 'php/executer.php',
        data : { className : className, functionName : functionName , parameters : parameters},
        dataType:'text',
        cache: false,
        contentType: "application/json; charset=utf-8",
        success : function(data) {

如果它仍然不起作用,请在包含 js 文件的同时尝试charset在您的标签中<script>

<script type="text/javascript" src="myscripts.js" charset="UTF-8"></script> 
于 2012-05-23T13:58:31.623 回答
0

在发送之前对您的数据使用 utf8_encode:http: //us2.php.net/utf8_encode

于 2012-05-23T13:56:17.683 回答
0
setlocale(LC_TIME, "es_ES.UTF8");

这适用于西班牙语

于 2015-12-07T03:24:14.150 回答