【问题标题】:Return JSON Data in regional Language in PHP在 PHP 中以区域语言返回 JSON 数据
【发布时间】:2018-10-08 05:52:08
【问题描述】:

我正在使用 MYSQL 数据库,其中我将数据存储在排序规则中:utf16le_general_ci。我这样做是为了在数据库中支持我的区域语言,并且我能够成功地以我的区域语言 (GUJARATI) 存储数据。

但是当我使用 PHP(版本 7+)读取数据并以 JSON 格式回显时,我得到了这种结果:

[
    {
        "content_id":"1",
        "cat_id_FK":"1",
        "content_data":"??????????? ? ????? ??????? ??."
    },
    {
        "content_id":"2",
        "cat_id_FK":"1",
        "content_data":"???? ?? ??? ?? 80% ????? ???? ??? ? ??? ??, ???? ??? ?????? ?? ??????,?????????? ??? ?????\r\n??????? ?? ??? ??????? ???? ??? ??? ??."
    },
    {
        "content_id":"3",
        "cat_id_FK":"1",
        "content_data":"?????????? ??????? ????????? ???? ???? ???? ? ???????????."
    },
    {
        "content_id":"4",
        "cat_id_FK":"1",
        "content_data":"???????????  ??? ???? ?????? ?????? ???? ???? ????? ?? ???????? ?? ??? ??."
    },
    {
        "content_id":"5",
        "cat_id_FK":"1",
        "content_data":"??? ????? ????? ???????? ?? ????? ????? ??? ??????? ? ??????????? ?? ????? ???? ????."
    },
    {
        "content_id":"6",
        "cat_id_FK":"1",
        "content_data":"??????????? ???? ?? ??? ??? ??? ? ????? ???."
    }
]

我的代码:-

header('Content-Type:application/json;charset=utf-8');
//header('Content-Type:application/json;charset=utf16le_general_ci');
include 'init.php';
global $connect;
$query = "SELECT * FROM gsrahasyacontent WHERE cat_id_FK=1";
$queryResult = mysqli_query($connect, $query);

while ($row = mysqli_fetch_assoc($queryResult)) {
   $array[] = $row;
}

echo json_encode($array, JSON_UNESCAPED_UNICODE);
//print json_encode($array, JSON_UNESCAPED_UNICODE);

-> 我尝试将字符集从 utf-8 更改为 utf16le_general_ci,但没有奏效。

-> 我也使用了 print 而不是 json 但仍然得到相同的结果。

This is what my table looks like.

【问题讨论】:

  • 试试mysqli_set_charset($con,"utf8mb4_bin");
  • 对不起...我试过了,但没有成功。虽然 saurabh sharma 的回答有效..
  • @AnkitGupta - 因为它是一个“字符集”,所以指定utf8mb4,而不是排序规则。
  • 无论出于何种目的,我都会反对utf16
  • 你能解释一下为什么.. 如果不是 utf16le 那我应该用什么

标签: php json mysqli utf-8


【解决方案1】:

试试这个mysqli_set_charset($con,"utf8");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-16
    • 1970-01-01
    • 1970-01-01
    • 2016-07-24
    • 1970-01-01
    • 2012-04-05
    • 1970-01-01
    • 2014-09-16
    相关资源
    最近更新 更多