PHP - 将Unicode数据正确格式化为MYSQL

时间:2017-01-03 00:25:48

标签: php mysql json unicode

我将s json文件中的一些数据插入mysql数据库。某些数据使用unicode格式化。

当我echo浏览器上的数据显示正常时,它会被插入未正确格式化的数据库中。

在我用作排序规则utf8_unicode_ci的数据库中。

JSON数据: anch\u2019iosar\u00e0

在浏览器中显示: anch'iosarà

在mysql数据库中显示: anch’iosarÃ

如何在数据库中插入格式正确的文本?

PHP

$getUrl = "https://example.com/79809000.json";
$json_level = file_get_contents($getUrl);
$data_level = json_decode($json_level);

$text = $data_level->{"text"};

mysqli_query($conn, "INSERT INTO `70_level`(`text`) VALUES ('$text')");

我尝试使用addslasheshtmlentities,但它不起作用。

1 个答案:

答案 0 :(得分:1)

您可能没有使用utf8作为字符集连接/归类连接。

解决此问题的最简单方法是使用

$conn = mysqli_connect(...);
mysqli_query($conn, "SET NAMES 'utf8'");

SET NAMES查询应该是您运行的第一个查询,因此请确保在mysqli_connect函数之后立即查询。

  

请注意,此更改将影响所有数据,因此如果数据库中已有数据,则需要使用新的(utf8)字符集重新插入数据。