jq ajax utf8,html - jQuery: UTF-8 not working with ajax request - Stack Overflow

I have a php file which uses jQuery.ajax() to grab some data from another php file into a div.

jQuery.ajax({

type: 'POST',

encoding:"UTF-8",

dataType:"html",

contentType: "text/plain; charset=UTF-8",

url: '/path/data.php',

success: function(msg) {

jQuery('#dataBox').html(msg);

}

});

My problem is that if I have some "special" characters in the data I'm getting through ajax such as åäö then I get the "question mark in a black diamond"-mark. If I open the external file in the browser it works. If I put some special characters on the main page, it works.

Some simplified code:

data.php:

$mysqli = new mysqli("localhost", "username", "pass", "db");

$mysqli->set_charset("utf8");

$mysqli->query("SET GLOBAL time_zone = '+00:00'");

$stmt = $mysqli -> prepare("SELECT GROUP_CONCAT(sometext) AS mytext FROM `mytable`");

$stmt -> execute();

$results = selectResults($stmt);

$stmt -> close();

$mysqli -> close();

selectResults function:

function selectResults($stmt)

{

$parameters = array();

$results = array();

$meta = $stmt->result_metadata();

while ( $field = $meta->fetch_field() ) {

$parameters[] = &$row[$field->name];

}

call_user_func_array(array($stmt, 'bind_result'), $parameters);

while ( $stmt->fetch() ) {

$x = array();

foreach( $row as $key => $val ) {

$x[$key] = $val;

}

$results[] = $x;

}

return $results;

}

data.php:

foreach($results as $result){

$textArray = explode(',', $result['mytext']);

}

foreach($textArray as $text){

echo($text);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值