【问题标题】:PHP not outputting special characters properlyPHP没有正确输出特殊字符
【发布时间】:2018-05-01 17:11:14
【问题描述】:

我的查询从我的数据库中选择一行并以 JSON 的形式输出到浏览器,但我遇到了一个我无法扭转的问题:每当我的查询选择的行包含特殊字符时例如“ö”、“ä”或“å”,来自 php 的响应变得完全空白。这是我的查询:

"SELECT email, firstname, lastname, phone, role FROM members WHERE id=? LIMIT 1"

我是这样输出的:

$data = array(
                    "email" => $email,
                    "firstname" => $firstname,
                    "lastname" => $lastname,
                    "phone" => $phone,
                    "role" => $role
                );
                   echo json_encode($data);
                   exit();

如果我手动将输出的一部分替换为这样的特殊字符:

$data = array(
                    "email" => $email,
                    "firstname" => "Jörgen", <-------------
                    "lastname" => $lastname,
                    "phone" => $phone,
                    "role" => $role
                );
                   echo json_encode($data);
                   exit();

然后它会正确输出。我的config.php 包含以下内容:

header('Content-type: text/plain; charset=utf-8');

我的数据库排序规则设置为utf8_general ci

【问题讨论】:

标签: php mysql database utf-8


【解决方案1】:

在连接到数据库时,尝试在您的 PHP 代码中包含 $db_connect-&gt;set_charset("utf8");。 (其中$db_connect 将包含您的数据库连接)

【讨论】:

  • 我这样连接:$conn = new mysqli($database['host'], $database['user'], $database['pass'], $database['db'] );我会在哪里包含您的建议?
  • 该行的正下方,$conn-&gt;set_charset("utf8");
猜你喜欢
  • 2014-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-10
  • 2015-03-08
  • 2018-09-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多