我知道这方面有很多问题。我尝试了很多东西,但我无法解决它。也许是因为我的知识有限而无法执行解决方案?
我从mysql数据库中选择数据并在其上使用json_encode()函数。这适用,但包含特殊字符(土耳其语)的数据除外。对于这些值,json返回null。我该如何解决这个问题?
这是我简单的PHP代码:
<?php
require('init.php');
$sql="SELECT * FROM tablename;";
$result=mysqli_query($con,$sql);
$response=array();
while($row=mysqli_fetch_array($result)){
array_push($response,array("X"=>$row["x"],"Y"=>$row["y"]));
}
echo json_encode($response);
?>
在mysql中,列设置为utf8-turkish。我尝试过设置标题,调用一些函数,用utf8编码重新创建php文件等等。但是没有一个能够正常工作。
答案 0 :(得分:2)
在我的连接脚本中使用mysqli_set_charset函数解决了这个问题。在类似的问题上找不到这个。感谢用户&#34; RiggsFolly&#34;
答案 1 :(得分:-1)
添加TRUE
:json_decode($string, TRUE);
这将获得utf8个字符而不是Unicode转义序列(如\u00d6
)。
在连接,表格和html中,您需要utf8
(或utf8mb4
)。请参阅this。