字符编码问题PHP和MySQLi

时间:2018-08-29 12:30:08

标签: php utf-8 character-encoding

我的数据库中有一些信息。随后,我echo json_encode($array);包含信息的数组,然后通过AJAX / jQuery将其返回到显示内容的页面。

例如;

“戴夫的苹果很酸”。

我的网页将其显示为:

“戴夫的苹果很酸”。

这显然是字符编码问题。在我的托管公司被另一家公司收购之前,我们从未遇到过问题。

显示内容的页面标题包含:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

此后,我们尝试了以下操作:

  • mysqli_set_charset($conn, "utf8"); <-无法解决问题
  • echo json_encode( $array, JSON_UNESCAPED_UNICODE ); <-无法解决问题

在包含“戴夫的苹果很酸”的特定变量上的echo mb_detect_encoding();回显:“ UTF-8”。

在检查显示信息的页面的控制台时,发现内容到达了“混乱的”脚本,FireBug从字面上显示了响应:戴夫的苹果很酸。

其中包含数据的列具有以下结构:

ID,名称,类型,归类

6,博客文章,文本,utf8_general_ci

有人有一些新见解吗?我一直在StackOverflow上搜索数​​小时,没有结果。

1 个答案:

答案 0 :(得分:-1)

用于编码:

json_encode($ data,JSON_UNESCAPED_UNICODE)

并进行解码:

json_decode($ json,false,512,JSON_UNESCAPED_UNICODE);