Из БД достаю данные:
mysqli_query($db,"set names utf8");
$query = "SELECT * FROM devices";
$result = mysqli_query($db,$query);
$num_results = mysqli_num_rows($result);
$data = array();
while ($row = mysqli_fetch_assoc($result))
{
$data[] = $row;
}
echo json_encode($data);
На выходе получаю JSON массив в котором кириллица закодирована в Unicode.
При замены крайней строки на json_encode($data, JSON_UNESCAPED_UNICODE)
Unicode заменяется на каракули.
Как можно решить эту проблему? JSON нужен для последующего вывода в приложении C#, может эту строку можно как то преобразовать непосредственно средствами C#?
Скорее всего каракули у вас отображаются именно в браузере (или где вы там проверяете вывод echo).
Если на стороне C# предполагается обработка через нормальный десериализатор, например, через JSON.NET - просто оставьте как есть, без JSON_UNESCAPED_UNICODE
- он сам правильно разэскейпит Unicode.
Если на стороне C# десериализатор не сможет разэскейпить - проставьте правильную кодировку ответа в PHP
header('Content-Type: text/html; charset=utf-8');
и кракозябры пропадут.
Почему бы вам не конвертировать строку уже со стороны C# приложения? Вот ссылка на encoding строки Encoding C#
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Подскажите, каким образом мне передать все значения из формы в liqpayЕсли можно с примером
Доброго времени суток, собственно ajax запрос просто редиректит на урл, который я ему указываю(index/add), а должен возвращать в консоль строку
Как спарсить цену товара с aliexpress, чтобы можно было вывести в echo?
Доброго времени суток! Подскажите пожалуйста, если у меня есть сокет и в нем есть инфа, которую я ещё не вычиталЕсли я в этот сокет запишу другую...