我在重音和特殊字符方面遇到问题,在重音中生成带有php的json,例如:
T\u00c3\u00a9cnologia = Técnologia
我已经尝试过修复它,mysqli_set_charset($conexion, "utf8");
但没有。
<?php
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type,x-prototype- version,x-requested-with');
//header("Content-type: application/json; charset=utf-8");
$server = "localhost";
$user = "root";
$pass = "";
$bd = "u703093142_wifi";
//Creamos la conexión
$conexion = mysqli_connect($server, $user, $pass,$bd)
or die("Ha sucedido un error inexperado en la conexion de la base de datos");
//generamos la consulta
$sql = "select upload.*,promociones.nombre_input
from upload
inner join promociones on upload.idGaleria=promociones.imagen_gallery limit 4";
mysqli_set_charset($conexion, "utf8"); //formato de datos utf8
if(!$result = mysqli_query($conexion, $sql)) die();
//$clientes = array(); //creamos un array
/*
while($row = mysqli_fetch_array($result))
{
$titulo=$row['titulo'];
utf8_decode($nombre_input=$row['nombre_input']);
$data[] = array('nombre_input'=> $nombre_input,'titulo'=> $titulo);
}
*/
while($row = mysqli_fetch_assoc($result)){
$data[]=array_map('utf8_encode', $row);
}
$close = mysqli_close($conexion)
or die("Ha sucedido un error inexperado en la desconexion de la base de datos");
//Creamos el JSON
$json_string = json_encode($data);
//echo $json_string;
echo '{"datos":'.$json_string."}";
//Si queremos crear un archivo json, sería de esta forma:
/*
$file = 'clientes.json';
file_put_contents($file, $json_string);
*/
?>
如果您不想将特殊字符转换为格式,我不太了解您遇到的问题
\u....
接收器必须反转编码,通常它会自动进行,例如在
php
使用json_decode(data_json)
它时只是转换它。但是您仍然希望它们不被转换,请使用该选项
JSON_UNESCAPED_UNICODE
测试
PHP官方文档 json_decode
你好亲爱的尝试在你的连接文件中添加这一行:
您只需添加它,它就会正确显示,您不再需要放入每个文件的头部,只需要在连接文件中。
我也遇到了同样的问题,解决方案是结合他们给你的两个答案。这样做:
希望对你有帮助
您可以使用此功能修复它:
您好,这很简单。
utf8_encode() 用于将字符串编码为 UTF-8 格式。当您使用 api rest 或 xml 时,它非常有用
干杯
这是我的第一个贡献:) 在这里我留下我的解决方案。
我希望它为您服务
就我而言,我正在使用带有苗条的作曲家,它已通过放置
在提出请求之前。
获取请求的示例如下:
它对我有用,只是把:
如果我读取返回的 JSON 文本而不将其转换为 JavaScript 对象,它会显示字符,
JES\u00daS
否则不会。