我正在尝试使用php和JSON从mysql数据库中获取数据,并且因为我选择的排序规则而无法正常工作。 我正在使用这些字符:®,é,è,™,É 我在mysql中的deafult排序是:latin1_swedish_ci,我的服务器默认排序规则是:utf8mb4_unicode_ci。 我应该删除那些特殊字符还是什么? 这个PHP代码:
<?php
require "conn.php";
$sql = "select * from produit";
$result = mysqli_query($conn, $sql); // result contient tous les produits
$response = array(); // on déclare un array
// pour chaque ligne de la table
while ($row = mysqli_fetch_array($result)) {
array_push($response, array("id_produit"=>$row[0] , "nom"=>$row[1], "catégorie"=>$row[2], "description"=>$row[3], "type"=>$row[4], "prix"=>$row[5], "qte_stock"=>$row[6]));
}
echo json_encode(array("server_response"=> $response));
mysqli_close($conn);
?>
show create table produit:
CREATE TABLE `produit` (
`id_produit` int(11) NOT NULL AUTO_INCREMENT,
`nom` varchar(255) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL,
`catégorie` varchar(255) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL,
`description` text COLLATE utf8mb4_unicode_520_ci NOT NULL,
`type` varchar(255) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL,
`prix` int(11) DEFAULT NULL,
`qte_stock` int(11) DEFAULT NULL,
PRIMARY KEY (`id_produit`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci
答案 0 :(得分:0)
对于那些想知道如何用法语字符来解决问题的人和JSON相信我,我现在尝试了所有事情,唯一有用的是:
echo json_encode(array("server_response"=>$response), JSON_UNESCAPED_UNICODE);
这里有更多信息的链接http://php.net/manual/fr/function.json-encode.php感谢上帝,我失去了第二次希望