我正在尝试使用数据库连接开发简单的应用程序,我的应用程序中有一些古吉拉特语文本从数据库中检索。
我有一个带古吉拉特数据的简单数据库 但当我在那个时候给我的api打电话时,gujarati文本重新开始作为一个" ??"登录
这是我的php文件
<? php
header('Content-Type: text/html; charset=utf-8');
if($_SERVER['REQUEST_METHOD']=='POST'){
if(!isset($_POST['id'])){
echo"Story ID is required";
}
else{
$link=mysqli_connect("localhost","******","*******","1275627")or die(mysqli_connect_error());
$sq="SELECT * FROM tbl_stories WHERE id = '$_POST[id]'";
$result_array=mysqli_query($link,$sq);
$i=0;
foreach($result_array as $ra){
$data["data"][$i]["id"]=$ra["id"];
$data["data"][$i]["title"]=$ra["title"];
$data["data"][$i]["story"]=$ra["story"];
$data["data"][$i]["language_id"]=$ra["language_id"];
$i++;
}
$data["result"]="success";
$data["count"]=$i;
header('Content-Type: application/json;charset=utf-8');
echo json_encode($data);
}
}else{
echo"Method must be POST";
}
exit;
?>
这是我的输出
{
"data": [
{
"id": "5",
"title": "Guj",
"story": "???? ??????? ????? ",
"language_id": "1"
}
],
"result": "success",
"count": 1}
我试图把
header('Content-Type: text/html; charset=utf-8');
但对我不起作用 帮帮我
答案 0 :(得分:0)
按照这两步
(1)将数据库,表和表字段集合更改为utf8mb4_bin
(2)使用数据库连接字符集utf8mb4_bin
e.g
对于mysqli连接
$con=mysqli_connect("localhost","my_user","my_password","my_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_set_charset($con,"utf8mb4_bin");
对于pdo连接
$conn = new PDO("mysql:host=$host;dbname=$db;charset=utf8mb4_bin", $user, $pass)