Покинул форум
Сообщений всего: 542
Дата рег-ции: Май 2011
Помог: 0 раз(а)
Доброй ночи.
У меня проблема с выводом информации с базы. В общем вывожу информацию с базы, текст выводится все нормально, но кое где, буквы меняются на такие значок "�", более подробно на скриншоте:
Ну вот все файлы сайте в кодировке UTF-8 без BOM, база в кодировке utf8_general_ci
В базу подключаюсь по обычному, еще использую при подключение к базе, вот такое чудо:
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
Судя по троеточию вконце каждой новости, она обрезается функцией substr(), а поскольку кодировка кодировка utf8 то последний символ просто режится (из символа берётся только один байт из двух), а этот один байт и выглядит как ромбик.
Решение, использовать mb_substr()
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
event
Отправлено: 25 Января, 2012 - 01:36:29
Частый посетитель
Покинул форум
Сообщений всего: 542
Дата рег-ции: Май 2011
$row['text']=mb_substr($row['text'],0,250,'utf-8')."... <a href=\"new.php?id=".$row['id']."\">Читать дальше > </a>";
}
echo$row['text'];
}
?>
Все вот правильный вариант, спасибо получилось, тыкнул плюсик.
OrmaJever
Отправлено: 25 Января, 2012 - 01:46:13
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
strlen() тоже нужно заменить на mb_strlen(). Обычная strlen считает не символы а байты, а посколку в utf8 многие символ из 2 байт то результат будет не верный. Можешь вывести и посмотреть значение.
Спасибо за сотую спасибку.
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
event
Отправлено: 25 Января, 2012 - 08:32:25
Частый посетитель
Покинул форум
Сообщений всего: 542
Дата рег-ции: Май 2011
Помог: 0 раз(а)
OrmaJever
Спасибо, после работы попробую.
Теперь 101. ;)
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.