Mesuti
@Mesuti

Как из массива сделать json с верной кодировкой русских букв?

Использую RedBeanphp. Есть массив, состоящий из выгрузки строк из базы данных:

$person = R::getAll( 'SELECT * FROM person' );  // выгружается целая таблица preson из БД

var_dump($person);

array(3) {
  [0]=>
  array(6) {
    ["id"]=>
    string(3) "398"
    ["name"]=>
    string(33) "Бронн Черноводный"
    ["description"]=>
    string(153) "Дочь свергнутого короля Семи Королевств из династии Таргариенов Эйриса Безумного. "
    ["reason_murder"]=>
    string(18) "Неприязнь"
    ["killer"]=>
    string(29) "Враждебный воин"
    ["weapon"]=>
    string(6) "Меч"
  }
  [1]=>
  array(6) {
    ["id"]=>
    string(3) "399"
    ["name"]=>
    string(29) "Роберт Баратеон"
    ["description"]=>
    string(197) "Роберт — человек очень высокого роста, шести с половиной футов роста, он всегда возвышался над окружающими."
    ["reason_murder"]=>
    string(22) "Случайность"
    ["killer"]=>
    string(10) "Кабан"
    ["weapon"]=>
    string(21) "Клык кабана"
  }
  [2]=>
  array(6) {
    ["id"]=>
    string(3) "400"
    ["name"]=>
    string(31) "Тайвин Ланнистер"
    ["description"]=>
    string(152) "Один из самых могущественных лордов Семи Королевств и, без сомнения, самый богатый."
    ["reason_murder"]=>
    string(12) "Защита"
    ["killer"]=>
    string(31) "Тирион Ланнистер"
    ["weapon"]=>
    string(14) "Арбалет"
  }
}



Делаю из него json
$json = json_encode($person);
echo $json

[{
    "id": "398",
    "name": "\u0411\u0440\u043e\u043d\u043d \u0427\u0435\u0440\u043d\u043e\u0432\u043e\u0434\u043d\u044b\u0439",
    "description": "\u0414\u043e\u0447\u044c \u0441\u0432\u0435\u0440\u0433\u043d\u0443\u0442\u043e\u0433\u043e \u043a\u043e\u0440\u043e\u043b\u044f \u0421\u0435\u043c\u0438 \u041a\u043e\u0440\u043e\u043b\u0435\u0432\u0441\u0442\u0432 \u0438\u0437 \u0434\u0438\u043d\u0430\u0441\u0442\u0438\u0438 \u0422\u0430\u0440\u0433\u0430\u0440\u0438\u0435\u043d\u043e\u0432 \u042d\u0439\u0440\u0438\u0441\u0430 \u0411\u0435\u0437\u0443\u043c\u043d\u043e\u0433\u043e. ",
    "reason_murder": "\u041d\u0435\u043f\u0440\u0438\u044f\u0437\u043d\u044c",
    "killer": "\u0412\u0440\u0430\u0436\u0434\u0435\u0431\u043d\u044b\u0439 \u0432\u043e\u0438\u043d",
    "weapon": "\u041c\u0435\u0447"
}, {
    "id": "399",
    "name": "\u0420\u043e\u0431\u0435\u0440\u0442 \u0411\u0430\u0440\u0430\u0442\u0435\u043e\u043d",
    "description": "\u0420\u043e\u0431\u0435\u0440\u0442 \u2014 \u0447\u0435\u043b\u043e\u0432\u0435\u043a \u043e\u0447\u0435\u043d\u044c \u0432\u044b\u0441\u043e\u043a\u043e\u0433\u043e \u0440\u043e\u0441\u0442\u0430, \u0448\u0435\u0441\u0442\u0438 \u0441 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u043e\u0439 \u0444\u0443\u0442\u043e\u0432 \u0440\u043e\u0441\u0442\u0430, \u043e\u043d \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u043e\u0437\u0432\u044b\u0448\u0430\u043b\u0441\u044f \u043d\u0430\u0434 \u043e\u043a\u0440\u0443\u0436\u0430\u044e\u0449\u0438\u043c\u0438.",
    "reason_murder": "\u0421\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0441\u0442\u044c",
    "killer": "\u041a\u0430\u0431\u0430\u043d",
    "weapon": "\u041a\u043b\u044b\u043a \u043a\u0430\u0431\u0430\u043d\u0430"
}, {
    "id": "400",
    "name": "\u0422\u0430\u0439\u0432\u0438\u043d \u041b\u0430\u043d\u043d\u0438\u0441\u0442\u0435\u0440",
    "description": "\u041e\u0434\u0438\u043d \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u043c\u043e\u0433\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u043b\u043e\u0440\u0434\u043e\u0432 \u0421\u0435\u043c\u0438 \u041a\u043e\u0440\u043e\u043b\u0435\u0432\u0441\u0442\u0432 \u0438, \u0431\u0435\u0437 \u0441\u043e\u043c\u043d\u0435\u043d\u0438\u044f, \u0441\u0430\u043c\u044b\u0439 \u0431\u043e\u0433\u0430\u0442\u044b\u0439.",
    "reason_murder": "\u0417\u0430\u0449\u0438\u0442\u0430",
    "killer": "\u0422\u0438\u0440\u0438\u043e\u043d \u041b\u0430\u043d\u043d\u0438\u0441\u0442\u0435\u0440",
    "weapon": "\u0410\u0440\u0431\u0430\u043b\u0435\u0442"
}]



Почему значения ключей в закодированном виде? Если выводить 1 конкретный ключ, тоже всё верно показывает.

Как вернуть правильный json в верной русский кодировке?
  • Вопрос задан
  • 107 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Потому что вам лень прочитать документацию по json_encode и добавить нужный параметр функции.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы