php json_encode () работает хорошо. Тем не менее, результаты разбиты на стороне клиента - PullRequest
0 голосов
/ 28 апреля 2020

Я работаю над сохранением результатов запроса из mysql в массиве из php и отправкой массива клиенту в форме json. Все наборы символов, включая набор символов mysql, являются utf8, и после проверки результатов после json_encode () была получена неверная строка json.

$final_result = json_encode($result, JSON_UNESCAPED_UNICODE | JSON_INVALID_UTF8_IGNORE | JSON_INVALID_UTF8_SUBSTITUTE);
echo $final_result; // == valid json data

После проверки с использованием json Валидатор, я обнаружил, что были созданы действительные данные json.

Однако после эхо-вызова я получил данные от клиента на ajax и проверил их, и произошла следующая ошибка, поэтому я не может разобрать его.

SyntaxError: Unexpected token  in JSON at position 64362
    at parse (<anonymous>)
    at jquery.min.js:2
    at l (jquery.min.js:2)
    at XMLHttpRequest.<anonymous> (jquery.min.js:2)

code preview image

lastime":"2020-03-19 08:55:10�����"

В результате проверки символы, показанные на рисунке, были созданы посередине, поэтому синтаксический анализ не работает.

$.ajax({
        url: 'test.php',
        data: {action: 'get_Data'},
        type: 'post',
        dataType: 'json'
    }).done(function (json_text) {
        alert("done");
        console.log(json_text);
        json_Obj = JSON.parse(json_text);
        console.log(json_Obj);
    }).fail(function (xhr, status, errorThrown) {
        alert("fail");
        console.log(xhr);
        console.log(xhr.responseText);
        console.log(status);
        console.log(errorThrown);
    });

Конечно, я объявил тип данных json в месте, где я позвонил Ajax Post.

Не знаю, почему -кодированные данные на стороне php на стороне клиента называются jquery, ajax, и почему происходит следующее.

Можете ли вы сказать мне, что я пропустил?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...