我将s json
文件中的一些数据插入mysql
数据库。某些数据使用unicode
格式化。
当我echo
浏览器上的数据显示正常时,它会被插入未正确格式化的数据库中。
在我用作排序规则utf8_unicode_ci
的数据库中。
JSON数据:
anch\u2019io
,sar\u00e0
在浏览器中显示:
anch'io
,sarà
在mysql数据库中显示:
anch’io
,sarÃ
如何在数据库中插入格式正确的文本?
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')");
我尝试使用addslashes
,htmlentities
,但它不起作用。
答案 0 :(得分:1)
您可能没有使用utf8
作为字符集连接/归类连接。
解决此问题的最简单方法是使用
$conn = mysqli_connect(...);
mysqli_query($conn, "SET NAMES 'utf8'");
SET NAMES
查询应该是您运行的第一个查询,因此请确保在mysqli_connect
函数之后立即查询。
请注意,此更改将影响所有数据,因此如果数据库中已有数据,则需要使用新的(utf8)字符集重新插入数据。