когда я публикую текст wie ü ö в $ text1 или $ text2, json_encode ($ response); дает мне ноль. когда я передаю свой вводимый текст, он возвращает правильное значение с помощью ö ü … что я могу сделать, чтобы мой эхо-код json_encode также возвращал значение с помощью ä ü ö, а не ноль
$response["test"] = array();
while ($row = $stmt->fetch()) {
// temp user array
$test= array();
$test["text1"] = $text1;
$test["text2"] = $text2;
+
echo $text1;array_push($response["test"], $news);
echo $response;
}
$response["success"] = 1;echo json_encode($response);
Все, что вы бросаете в json_encode (), должно быть на самом деле кодируемым, для строк это только в том случае, если они являются допустимой кодировкой UTF-8. Они по-прежнему не будут отображаться как простые умлауты в выводе, для этого есть дополнительный флаг, предотвращающий экранирование не-ASCII-букв.
Замечания:
* Фактическая версия PHP имеет значение, возможности изменились между 5.3, 5.4 и 5.5.
* Существует функция для получения информации об ошибках, связанных с кодировкой, просто прочитайте документацию, чтобы ознакомиться с API.
echo json_encode('ä ö ü');
доходность
"\u00e4 \u00f6 \u00fc"
Которые — только спасенные версии тех персонажей. Когда вы их распечатываете, все должно выглядеть хорошо.
Ваш пример кода, однако, не имеет особого смысла. Где $news
, $text1
а также $text2
определены? Почему у вас есть случайный +
в середине вашей петли? Что происходит с отступом? Что значит var_dump($response)
выплюнуть? Если в вашем массиве ответов есть отклонения, возможно, поэтому вы возвращаете значение NULL.
Также проверьте json_last_error или же json_last_error_msg если вы используете> = 5.5