После изменения кодировки сайта на 1С-Bitrix c CP-1251 на UTF-8 очень часто наблюдается ситуация, что описания товара выводятся вопросиками. Проблема заключается в том, что меняя кодировку сайта — ее базу данных и файлы, мы не изменяем значения на нужную кодировку в самих таблицах описаний.
Для решения данной проблемы был найден замечательный скрипт, исправляющий кодировку в html описаниях товара
<? require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php"); if($USER->IsAdmin()) { global $DB; $r = $DB->Query("SEL ECT ID FR OM b_iblock_property WHERE PROPERTY_TYPE='S'"); while($prop = $r->Fetch()) { $rV = $DB->Query("SELECT ID,VALUE FR OM b_iblock_element_property WHERE IBLOCK_PROPERTY_ID=".$prop['ID']." AND VALUE IS NOT NULL AND VALUE LIKE 'a:%'"); while($pV = $rV->Fetch()) { $s_cp1251 = iconv('utf-8','windows-1251',$pV['VALUE']); $u_cp1251 = unserialize($s_cp1251); array_walk_recursive($u_cp1251,'c'); $s_utf8 = serialize($u_cp1251); $updateSql = "UPD ATE b_iblock_element_property SE T VALUE='".$DB->ForSql($s_utf8)."' WH ERE ID=".$pV['ID']; $DB->Query($updateSql); } } } function c(&$item, &$key) { global $APPLICATION; $item = $APPLICATION->ConvertCharset($item,'windows-1251','UTF-8'); } require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>
За скрипт спасибо пользователю Evgeniy Pedan
Ветка обсуждений на dev 1С-Bitrix