【发布时间】:2017-08-07 13:42:11
【问题描述】:
我正在尝试获取数据库中的数据并以 json 格式显示它们。但是带有重音的单词是这样出现的:\u00f3。
我的代码是这样的: cidadeDao.php
<?php
class CidadeDAO {
private $conexao;
public function __construct() {
$this->conexao = new Conexao();
}
public function consultarTodos() {
// mysql_set_charset('utf8');
$sql = "SELECT * FROM cidade";
$resultado = mysqli_query($this->conexao->getCon(), $sql);
return $resultado;
}
}
?>
cidade.php
<?php
header("Content-Type: text/html; charset=UTF-8",true);
include '../Classes/Conexao.php';
include '../Classes/DAO/cidadeDao.php';
$cidadeDao = new cidadeDao();
$consulta = $cidadeDao->consultarTodos();
for ($i = 0; $i < mysqli_num_rows($consulta); $i++){
$linha = mysqli_fetch_array($consulta);
$respostas [] = array (
'id' => $linha['id'],
'id_uf' => $linha['id_uf'],
'cidade' => utf8_encode($linha['cidade'])
);
}
echo json_encode($respostas);
?>
当我检查生成的 json 时,它看起来像这样:
[{"id":"1","id_uf":"1","cidade":"Sorocaba"},
{"id":"2","id_uf":"5","cidade":"Niter\u00f3i"},
{"id":"3","id_uf":"1","cidade":"Tatui"},
{"id":"4","id_uf":"1","cidade":"Itu"}]
谁能帮帮我?
如何在php中处理带有重音和特殊字符的单词?
【问题讨论】:
-
似乎是什么问题?当json_decoded 他们应该变成他们以前的任何地方。并且前端 JS 应该正确显示它们。
-
您正在使用的 php 函数
utf8_encode可以做到这一点,但您期待什么?这就是它应该的样子。 -
在我的 json 中它应该是这样的: [{"id":"1","id_uf":"1","cidade":"Sorocaba"}, {"id ":"2","id_uf":"5","cidade":"Niterói"}, {"id":"3","id_uf":"1","cidade":"Tatui"}, { "id":"4","id_uf":"1","cidade":"Itu"}] @DainisAbols
-
不,它不应该是那样的,那不是json way。
-
但是由于它在来自数据库的单词中有一个特殊字符,我无法转换整个单词。 @DainisAbols