У меня проблемы с акцентами и спецсимволами, генерирую json с php в акцентах, например:
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
, иначе нет.