无法在PHP中从MySQL获取非英语字母(文本)

时间:2019-01-31 17:20:17

标签: php mysql utf-8

我是一名Android开发人员,仅使用PHP从MySQL中获取数据(因此我的PHP很差),并且始终可以正常工作,但是我发现我无法使用非英文字母来获取数据

我写了这样的问题How to put in JSON Object non-english letters?

但是在那个问题中我以为这个问题是在json编码中,但是在json中不是问题。(但是现在我知道如何用json解决问题了) 所以我只需要从MySQL获取非英语文本数据

我认为问题出在数据库中,所以我将所有内容都更改为utf-8,检查了两次,在数据库中进行了相同的查询并获得了预期的结果,所以问题出在php代码中。 然后我研究并认为也许我的php不能维护utf-8,然后在顶部的那行<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />创建一个简单的String变量,该变量包含非英文字母并回显该变量,它向我展示了什么我希望如此,因此我认为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);
?>

这是我的数据库数据: datas  结构: structure

对于所有数据库

    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

之前

0 个答案:

没有答案