Я разработчик Android и использую PHP только для получения данных из MySQL (так что мой PHP очень плох), и он всегда работает, но я сталкиваюсь с тем, что не могу получить данные неанглийскими буквами
Я написал такой вопрос Как поместить в JSON Object неанглийские буквы?
, но в этом вопросе я подумал, что проблема в кодировке json, но это не проблема в json(но теперь я знаю, как решить проблему с json), поэтому мне нужно просто получить неанглийские текстовые данные из MySQL
Я думал, что проблема в базе данных, поэтому я изменил все на utf-8
, проверил дважды, сделал тот же запрос в базе данных и получить ожидаемый результат, поэтому проблема в коде php.затем я исследовал и подумал, что, возможно, мой php не поддерживает utf-8, и эта строка <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
к началу, затем создайте простую строковую переменную, состоящую из неанглийских букв и отображающую эту переменную, и она показала мне, чего я ожидаюТак что я думаю, что поддержка php utf-8
, поэтому я думаю, что единственная проблема в части с mysqli_query
, это мой код:
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<?php
header("Content-type: text/html; charset=utf-8");
$con = mysqli_connect(...);
$sql = "SELECT * FROM news WHERE status = 'actual' ORDER BY id DESC";
$result = mysqli_query($con, $sql);
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["id"]. " - TITLE: " . $row["title"]. " -TEXT: " . $row["text"]. "<br>";
}
} else {
echo "0 results";
}
mysqli_close($con);
?>
itмои данные базы данных: и структура:
для всей базы данных
MySQL charset: UTF-8 Unicode (utf8)
MySQL connection collation: utf8_unicode_520_ci
Я ожидал получить те же данные, что и в столбцах заголовка и текста (вы можете увидетьданные выше)
но я получаю:
id: 4 - TITLE: ???????? -TEXT: ????????? ??????? ?????, ? ??? ????????? ?? ?????????
id: 3 - TITLE: A little bit... -TEXT: Just some more patience! And you will get this wonderfull application!
id: 1 - TITLE: �p�???�? -TEXT: Just wait a little bit!
Я пытался написать все детали моей проблемы, поэтому помогите мне с кодом, что я должен добавить / изменить (в какой строке?) чтобы получить ожидаемый результат.Спасибо всем заранее!
РЕШЕНИЕ НАЙДЕНО
Я должен добавить $con->set_charset("utf8");
перед объявлением $sql