2016-12-31 28 views
1

私はjQueryオートコンプリートを使用していますが、ローカルマシンでは特別なスペイン語の文字は問題なく動作します。jQuery UIオートコンプリート - スペイン語は正しく表示されますが、サーバー上には表示されません

ローカルマシン:

enter image description here

は "フェルナンドカーニャス" の正しい表示に注意してください。ローカルでは問題ありません。それで、私は自分のPHPサーバを私のLinuxサーバ(MySQLを走らせる)に配備し、同じことを実行して、 "FernandoCa as"を取得します。

ブラウザウィンドウで未加工のjsonを見ると「FernandoCañas」が正しく表示されるというのは奇妙なことです。しかしChromeデベロッパーツールで(サーバからの私の地元のChromeに実行されている)、再び、それは間違っている:要するに

enter image description here

、すべてのものは、Windows 10で私のローカルPC上で完璧で、PHP、およびMySQLを実行しているIIS 。しかし、私のLinuxサーバ(ApacheとMySQLの上でPHPを実行している)で、ここでの内訳は次のとおりです。

  • jqueryのオートコンプリート:JSONを見誤った
  • Chromeデベロッパーツール:
  • 間違ったChromeブラウザ、ジェイソンを見て:右ここにenter image description here

は、JSONは(同じ、私はそれを実行すると、ローカル)サーバーによって放出されている。

{"id":"4225","value":"Fernando Cañas - (555) 555-5555"} 

そして、ここでは私のjQueryのです:

$("#SearchStudents").autocomplete({ 
    formatResult: function(row) { 
     return $('<div/>').html(row).html(); 
    }, 
    source: function(request, response) { 
     $.ajax({ 
      url: "SearchStudents.php", 
      dataType: "json", 
      data: { 
       term: request.term, 
       IncludeInactive: document.getElementById("chkSearchInactive").checked 
      }, 
      success: function(data) { 
       console.log(data); 
       response(data); 
      } 
     }); 
    }, 
    minLength: 2, 
    open: function() { 
     $('#SearchStudents').autocomplete("widget").width(350); 
    }, 
    select: function(event, ui) { 
     location.href = "Students.php?StudentID=" + ui.item.id; 
    } 
}); 

それはそこかないのかどうか、以下のブロックは違いはありませんので、予めご了承ください。

formatResult: function(row) { 
    return $('<div/>').html(row).html(); 
} 

ソリューションとは何ですか?

答えて

1

サーバーとのutf8問題がありますように、ということを確認するようです:コンテンツタイプのHTMLプット

  • (phpMyAdminので照合あなたは操作の下でそれを変更することができます>)

    1. あなたのMySQLのテーブルはutf8_spanish_ciでコーディングされています<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    2. XML、JSONまたは任意のAjax呼び出しを返すPHPファイルでは、何かを印刷する前にこれを行います:header("Content-Type: text/html;charset=utf-8");
    3. 名前を設定すると、PHP/MySQL接続を作成するときに、接続後に次のクエリを送信します。$db->query("SET NAMES 'utf8'");
    4. すべてをUTF-8でエンコードして保存します。
    5. latin1のにUTF-8から変換:http://xaviesteve.com/354/acentos-y-enes-aparecen-mal-a%C2%B1-en-php-con-mysql-utf-8-iso-8859-1/

      :あなたはでそれについての詳細を読むことができます
      SELECT convert(cast(convert(content using latin1) as binary) using utf8) AS content

    関連する問題