古吉拉特文本作为问号返回

时间:2017-09-21 09:02:31

标签: php api

我正在尝试使用数据库连接开发简单的应用程序,我的应用程序中有一些古吉拉特语文本从数据库中检索。

我有一个带古吉拉特数据的简单数据库 但当我在那个时候给我的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');

但对我不起作用 帮帮我

1 个答案:

答案 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)