Я работаю над сохранением результатов запроса из 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)
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, и почему происходит следующее.
Можете ли вы сказать мне, что я пропустил?