我的 sql 没有 return 具有特殊字符的值

my sql dont return value having special character

my sql query returns 没有结果当只是值到 return 有特殊的性格。例如:

查询是:

$sql = "SELECT * from categorie ";

    $result = $conn->query(sprintf($sql));

结果在 json

   {"rows":2,"categorie":[{"idCategorie":"8","nomCategorie":"loisir ","imageCategorie":"imgCategorie1.png"},{"idCategorie":"9","nomCategorie":"destination","imageCategorie":"imgCategorie2.png"}],"message":"Liste cat\u00e9gorie","error":0}

但是当我将 "nomCategorie" 从 "loisir" 更改为“quelle loisir avez vous ??

查询没有 return 任何东西或像 nomCategorie =cinéma paris

没用。所以我取消了所有 space 和特殊字符并且它有效

没关系,我找到了解决方案,我只是在我的配置文件中添加了 ligne :

 $conn->query("SET CHARACTER SET utf8");

我有一个非常相似的问题。任何时候我试图获取带有特殊字符的数据都不会被返回。然后我找到了这个非常全面的指南:

https://www.toptal.com/php/a-utf-8-primer-for-php-and-mysql

问题中您使用的 mysql 连接器并不清楚,但本指南应该有您要查找的内容。这是一个基本的 mysql 连接:

 $link = mysql_connect('localhost', 'user', 'password');
  mysql_set_charset('utf8', $link);

还需要注意的是,在 header:

中设置要在 php 中显示的特殊字符
header('Content-Type: text/html; charset=utf-8');

希望对您有所帮助!