Столкнулся однажды с такими результатами вывода на экран переменной php-скрипта:
Вот часть того скрипта, использующего класс системы Bitrix:
Чтобы браузер отобразил корректно русский текст, нужно ему помочь. В Firefox это делается так:
После этого данные нашего echo отобразятся правильно:
В чем причина произошедшего?
Браузер не определил корректно кодировку по следующим причинам:
- не были переданы заголовки о кодировке;
- данные выводились на пустой странице без тега <meta charset="utf-8">.
Я попробовал добавить в вывод страницы указанный тег:
Это привело к правильному отображению русских букв, поскольку браузер смог корректно определить кодировку благодаря наличию тега <meta charset="utf-8">
Вот часть того скрипта, использующего класс системы Bitrix:
$res = CIBlockElement::GetList(
Array("SORT"=>"ASC"),
Array("IBLOCK_ID" => IBLOCK_AUTOFILL_GROUP_ID),
false,
false,
Array("ID", "IBLOCK_ID", "NAME", "DATE_ACTIVE_FROM","PROPERTY_*")
);
while($ob = $res->GetNextElement()){
$arFields = $ob->GetFields();
//Вываодим переменную на экран
echo $arFields['NAME'];
}
Чтобы браузер отобразил корректно русский текст, нужно ему помочь. В Firefox это делается так:
После этого данные нашего echo отобразятся правильно:
В чем причина произошедшего?
Браузер не определил корректно кодировку по следующим причинам:
- не были переданы заголовки о кодировке;
- данные выводились на пустой странице без тега <meta charset="utf-8">.
Я попробовал добавить в вывод страницы указанный тег:
//Указываем тег кодировки
echo '<html><head><meta charset="utf-8"></head><body>';
while($ob = $res->GetNextElement()){
echo '<pre>';
$arFields = $ob->GetFields();
echo $arFields['NAME'];
echo '</pre>';
}
//Завершаем html-документ
echo '</body></html>';
Это привело к правильному отображению русских букв, поскольку браузер смог корректно определить кодировку благодаря наличию тега <meta charset="utf-8">



Комментариев нет:
Отправить комментарий