Мой запрос выбирает строку из моей базы данных и выводит ее в виде JSON в браузер, но я столкнулся с проблемой, которую не могу обернуть: всякий раз, когда строка, выбранная моим запросом, содержит специальный символ, например " ö "," ä "или" å "ответ от php становится полностью пустым. Вот мой запрос:
"SELECT email, firstname, lastname, phone, role FROM members WHERE id=? LIMIT 1"
Я вывожу это так:
$data = array(
"email" => $email,
"firstname" => $firstname,
"lastname" => $lastname,
"phone" => $phone,
"role" => $role
);
echo json_encode($data);
exit();
Если я вручную заменю часть вывода специальным символом вроде этого:
$data = array(
"email" => $email,
"firstname" => "Jörgen", <-------------
"lastname" => $lastname,
"phone" => $phone,
"role" => $role
);
echo json_encode($data);
exit();
Затем он выводит его правильно. Мой config.php
содержит это:
header('Content-type: text/plain; charset=utf-8');
И моя сортировка базы данных установлена на utf8_general ci
Попробуйте включить $db_connect->set_charset("utf8");
в свой PHP-код при подключении к базе данных. (где $db_connect
будет содержать ваше соединение с базой данных)
Я подключаюсь так: $ conn = new mysqli ($ database ['host'], $ database ['user'], $ database ['pass'], $ database ['db']); куда бы я включил ваше предложение?
прямо под этой линией, как $conn->set_charset("utf8");
Возможный дубликат UTF-8 полностью