PHP UTF-8编码呼应问号

PHP UTF-8 encoding echoes question marks

我正在尝试使用以下代码用 unicode 字符回显 json_response:

function utf8ize($d) {
if (is_array($d)) {
    foreach ($d as $k => $v) {
        $d[$k] = utf8ize($v);
    }
} else if (is_string ($d)) {
    return utf8_encode($d);
}
return $d;
}

这样使用:

echo json_encode(utf8ize($response));

这个问题是一些字符被正确编码,而其他字符如 ćś 被作为问号发送,如下图所示:

我不确定如何解决这个问题。

你可以尝试执行

SET NAMES utf8

作为查询。建立连接后。

然后以防万一设置这个header

header('Content-type: text/plain; charset=utf-8');

然后重试

According to http://php.net/manual/en/function.utf8-encode.php utf8_encode encodes data from ISO-8859-1 to UTF-8.

但是,波兰语有 iso-8859-2 字符集,所以您应该使用

iconv('iso-8859-2', 'utf-8', $d) 而不是 utf8_encode($d)