в json Stack Overflow не отображается

когда я публикую текст 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);

0

Решение

Все, что вы бросаете в json_encode (), должно быть на самом деле кодируемым, для строк это только в том случае, если они являются допустимой кодировкой UTF-8. Они по-прежнему не будут отображаться как простые умлауты в выводе, для этого есть дополнительный флаг, предотвращающий экранирование не-ASCII-букв.

Замечания:
* Фактическая версия PHP имеет значение, возможности изменились между 5.3, 5.4 и 5.5.
* Существует функция для получения информации об ошибках, связанных с кодировкой, просто прочитайте документацию, чтобы ознакомиться с API.

0

Другие решения

echo json_encode('ä ö ü');

доходность

"\u00e4 \u00f6 \u00fc"

Которые — только спасенные версии тех персонажей. Когда вы их распечатываете, все должно выглядеть хорошо.

Ваш пример кода, однако, не имеет особого смысла. Где $news, $text1 а также $text2 определены? Почему у вас есть случайный + в середине вашей петли? Что происходит с отступом? Что значит var_dump($response) выплюнуть? Если в вашем массиве ответов есть отклонения, возможно, поэтому вы возвращаете значение NULL.

Также проверьте json_last_error или же json_last_error_msg если вы используете> = 5.5

0

По вопросам рекламы [email protected]