utf8_encode和表情符号

时间:2016-05-13 20:32:17

标签: php json encoding

我有一个问题utf8编码。在wordpress数据库中,有许多表情符号但是当我编码时,它们不再出现。有一个“?”而是出现了。

你能帮帮我吗?我认为它来自utf8_encode

这是代码:

$results = $connection->query($req) or die(Array());

$results->setFetchMode(PDO::FETCH_OBJ); 

$i = 0;
$jsonArray = Array();
while($row = $results->fetch()) {   

    $jsonArray[$i][0] = utf8_encode($row->comment_author);
    $jsonArray[$i][1] = utf8_encode(nl2br($row->comment_content));
    $jsonArray[$i][2] = utf8_encode($row->comment_date);
    $jsonArray[$i][3] = utf8_encode($row->replyingToAuthor);
    $jsonArray[$i][4] = utf8_encode($row->comment_ID);

    ++$i;
}

$results->closeCursor();
$connection = NULL;
echo json_encode($jsonArray);

这是显示评论的行:

 $jsonArray[$i][1] = utf8_encode(nl2br($row->comment_content));

我对编码重音没有问题,只有表情符号

谢谢

2 个答案:

答案 0 :(得分:0)

这就是我为解决这个问题所做的:

创建一个功能

function accents($texto) {
    $text = nl2br($text); // allows to have spaces in the text
    $text = utf8_encode($text); //allows to have accents and special characters
    return $text;
}

调用函数

echo formatoAcentos($post['texto']);

答案 1 :(得分:0)

我改进了它,因为它不起作用。

功能:

@json

函数调用。

// vanilla js - value example
let pay = JSON.parse(document.getElementById('pay-data').value);
// jquery - value example
let pay = JSON.parse($('#pay-data').val());
// vanilla js - attribute example
let pay = JSON.parse(document.getElementById('pay-data').getAttribute('someattribute'));
// jquery - attribute example
let pay = JSON.parse($('#pay-data').attr('someattribute'));
// vanilla js - data-* attribute example
let pay = JSON.parse(document.getElementById('pay-data').dataset.payment);
// jquery - data-* attribute example
let pay = JSON.parse($('#pay-data').data('payment'));