来自AJAX的错误字符集

时间:2015-11-30 08:44:53

标签: javascript php jquery ajax utf-8

当我想打印出从服务器中获取的jQuery AJAX的输出时。它没有显示正确的字符集。我想要的是获取š而不是?或者在从服务器发送数据时不使用utf8_decode(),我得到ĹĄ。所有文件script.js和服务器php proceed.php都以UTF-8保存并设置为UTF-8。数据库也设置为UTF-8。来自数据库的所有其他请求都提供了正确的字符集。我已经尝试了大部分的事情。 在AJAX的.js文件中:

  $.ajaxSetup({
    url: "proceed.php", //file to procces data
    ContentType : 'charset=UTF-8', // tried here
    global: false,
    type: "POST", 
    dataType: "html" // change to text/html, application/text doesnt work at all
});

.php档案中:

mysql_query("SET NAMES utf8");
$output = utf8_decode($sql_result);

所有可能的组合。

CODE: PHP

if(!empty($_POST['select_had'])){
$zem = $_POST['select_had'];
$vysledek = mysql_query("SELECT typ_hadanky, jazyk FROM hlavolam RIGHT JOIN hadanka ON hlavolam.id_hlavolamu=hadanka.id_hlavolamu WHERE zeme_puvodu='$zem'");
$out = "";
while ($zaznam = mysql_fetch_array($vysledek)) {
    $zaz = $zaznam['jazyk'];
    $out .= "<option>".$zaz."</option>";
}
$vys = utf8_decode($out);
echo $vys;

}

jQuery的:

$("#sel_had_zem").change(function(){
var select_had = $("#sel_had_zem option:selected").text();
$.ajax({
  data:{'select_had':select_had},
  success: function(data){
      $("#sel_had_jaz option").nextAll().remove();
      $("#sel_had_jaz").append(data);
  },
  error: function(){
      alert('No server response');
  }
 });

});

0 个答案:

没有答案