使用json_encode PHP时为什么导致php与Mysql的结果不一样?

时间:2018-02-21 04:59:35

标签: php mysql json

使用json_encode PHP时,为什么php的结果与Mysql的结果不一样?

这是index.php的html和php代码。

<?PHP
session_start();
include("connect.php");

if(isset($_POST["submit"]))
{
    $array = array();

    $text = $_POST["text"];
    $text = mysqli_real_escape_string($db_mysqli,$text);
    $array[] = $text;

    $array = json_encode($array);
    print_r($array);

    mysqli_query($db_mysqli,"INSERT INTO test_1 (xxx)
    VALUES ('$array')");
}
?>


<form class="form" method="post" action="" enctype="multipart/form-data">
<textarea id="text" name="text"></textarea>
<input type="submit" name="submit" value="OK">
</form>

当测试加载index.php并将先秦兩漢填入textarea时,然后按ok按钮。

您将在["\u5148\u79e6\u5169\u6f22"]

上看到index.php

然后我打开mysql并看到这个结果["u5148u79e6u5169u6f22"]

我想知道为什么\在mysql中消失了?我如何在mysql中存储\

1 个答案:

答案 0 :(得分:1)

您需要为表选择utf8_ *字符集。然后,文本和备注字段将自动存储在UTF-8中。

`SET COLUMNNAME UTF8`

或者你可以在下面查询。

`alter table `DBNAME`.`TblName`  Engine=InnoDB checksum=1 comment='' delay_key_write=1 row_format=dynamic charset=utf8 collate=utf8_unicode_ci`