使用JSON和一些特殊字符时,最佳排序规则是什么

时间:2017-03-27 12:12:36

标签: php mysql json collation

我正在尝试使用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

1 个答案:

答案 0 :(得分:0)

对于那些想知道如何用法语字符来解决问题的人和JSON相信我,我现在尝试了所有事情,唯一有用的是:

echo json_encode(array("server_response"=>$response), JSON_UNESCAPED_UNICODE);

这里有更多信息的链接http://php.net/manual/fr/function.json-encode.php感谢上帝,我失去了第二次希望