ShelestovAnt
@ShelestovAnt
Верстаю и программирую

В какой кодировке возвращать данные при ajax запросе?

Народ, все никак не могу понять в какой кодировке и как правильно возвращать данные от сервера по ajax.
ajax запрос:
BX.ajax({
            url: '...................',
            method: 'POST',
            //dataType: 'json',
            cache: false,
            onsuccess: function(data){
              parsed = JSON.parse(data);
              // console.log("Fetched saves list: ");
              console.log(parsed);
            },
            onfailure: function(data){
              console.log('Failed to load saves list.');
              console.log(data);
            }
          });


код на сервере:
require_once($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_before.php");
require_once($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/testpartner.testpartnermodule/include.php");
use Bitrix\TestPartner\TestPartnerModule\TestPartnerModuleListTable;

$rsData = TestPartnerModuleListTable::GetList();

$result = array();

while ($row = $rsData->fetch())
{
    $listItem = array(
        'id' => $row['ID'],
        'name' => $row['NAME']
    );
    array_push($result, $listItem);
}
echo json_encode($result);


вот все из-за $row['NAME'] в это переменной и латиница и кириллица.
Если вместо $row['NAME'] написать например "test english word" то все нормально передается.
Все файлы в windows-1251 кодировке

Объясните пожалуйста почему проблемы с кириллицей?
  • Вопрос задан
  • 240 просмотров
Пригласить эксперта
Ответы на вопрос 1
gromdron
@gromdron
Работаю с Bitrix24
Так как JSON кодируется символами Юникода, то наилучшим вариантом является UTF-8 кодировка.
Как практикующий разработчик на 1С-Битрикс строго рекомендую Вам переводить проекты на UTF-8.

P.S. У вас неймпсейс
use Bitrix\TestPartner\TestPartnerModule\TestPartnerModuleListTable;

А должен быть:
use TestPartner\TestPartnerModule\TestPartnerModuleListTable;

Так как Вы не Bitrix и не нужно никого вводить в заблуждение :)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы