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)
我正在尝试使用以下代码用 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)