PHP UTF-8编码回显问号

PHP UTF-8编码回显问号,php,json,utf-8,echo,special-characters,Php,Json,Utf 8,Echo,Special Characters,我尝试使用以下代码使用unicode字符回送json_响应: 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($r

我尝试使用以下代码使用unicode字符回送json_响应:

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('Content-type: text/plain; charset=utf-8');
然后再试一次

utf8\u编码
将数据从ISO-8859-1编码为UTF-8

但是,Polish lang有iso-8859-2字符集,因此您应该使用

iconv('iso-8859-2','utf-8',$d)

而不是
utf8\u encode($d)

在哪个字符编码中是字符串?它们是从
utf8\u polish\u ci
中的我的数据库中获取的,那么您希望
utf8\u encode
做什么?如果它们已经在UTF-8中,
utf8\u encode
会将它们销毁。我补充说,因为没有它,我的php脚本不想重复任何内容,我遵循了这里的建议,之后它开始返回显示的输出。我建议您遵循fayd的答案(有8张赞成票的答案)。
SET NAMES utf8
将输出更改为:
“Warto\u0139\u009b\u00c4\u0087 wyra\u0139\u017aenia 5-2\u00c2\u02c7 4 jest r\u0102\u0142wna
在我删除utf8\U编码后,仍然无法正确显示给MenerMind,它工作正常。感谢您不确定您是否有任何html,但是使用类似
标题的标题('Content-type:text/html;charset=utf-8')
在这种情况下,这是一个PHP脚本,由Java中的移动应用程序调用,没有HTML,但希望确定。哈哈