Столкнулся однажды с такими результатами вывода на экран переменной 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">
Комментариев нет:
Отправить комментарий