После изменения кодировки сайта на 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
