3

Jquery から JavaScript ファイルに Ajax 関数を使用して文字列を送信する必要があります。問題は、受信する必要がある文字列の前に一連の奇妙な疑問符/ダイヤモンドブロックを取得することです。

         (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に、charset を使用して渡す

$.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 に答える