Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Непонятный символ � при ответе с БД?

Непонятный символ � при ответе с БД?


     26.01.2018    Все вопросы » Общие вопросы по PHP    264

вопрос
Всем привет! В гугле смотрел, не нашел ответа, возможно плохо искал.
Суть в то,что при получении ответа с БД и обработки его с помощью json и php, json зависает. Пронаблюдав, заметил что причина только в получении каким-то образом с MySQL данных в которых появляется вот такой символ - � (не знаю отобразится он или нет, но на всякий случай - черный ромб, внутри знак вопроса белого цвета), т.е. получаем текст, он сокращается с помощью
substr(strip_tags....
, при чем не все данные полученные с БД имеют в конце сокращения этот спец символ. Собственно интересует - что за знак это? И как от него избавится при получении данных с БД.

Ответил: estverum


$str_text = mb_substr(strip_tags($row_info['text']), 0, 70, 'UTF-8');

8 комментариев

lutskboy
Юзер

lutskboy - 26 января 2018 17:46 -

mb_substr юзайте

vitnet
Эксперт

vitnet - 27 января 2018 11:19 -

$str = dle_substr($str, 0, 1000, $config['charset']);

estverum
Юзер

estverum - 27 января 2018 20:51 -

lutskboy,
использовать или изучать)))
Я попробую его...читал в инете, просто думал разницы особо нет.

estverum
Юзер

estverum - 27 января 2018 20:52 -

vitnet, спасибо))) но вроде кодировка стоит на сайте utf-8 или надо все таки дополнительно прописывать при использовании substr?

estverum
Юзер

estverum - 27 января 2018 21:04 -

Цитата: vitnet
$str = dle_substr($str, 0, 1000, $config['charset']);

ввел...текст который необходимо было сокращать пропал...ну и понятное дело ошибка вместе с ним. Я думаю может проблема в strip_tags?
Вот полностью это строка с сокращением
$str_text = substr(strip_tags($row_info['text']), 0, 70);

estverum
Юзер

estverum - 27 января 2018 21:12 -

Цитата: lutskboy
mb_substr юзайте

сделал так
$str_text = mb_substr(strip_tags($row_info['text']), 0, 70, 'UTF-8');
, но теперь сокращение как по другому происходит отсчет идет конечно 70 символов(но видимо, теперь не считает русские буквы как 2) и раньше рубил текст не обрезая слова...

estverum
Юзер

estverum - 27 января 2018 21:18 -

В общем сложил два Ваших ответа в одно целое , уменьшил размер с 70 на 35 и это пока лучший вариант решения. В любом случае спасибо lutskboy и vitnet, буду просто копать в предложенных Вами вариантах в поисках оптимального решения ))))

dj-avtosh
Эксперт

dj-avtosh - 1 февраля 2018 00:33 -

dle_substr самый верный вариант, он учитывает особенности движка.

telegram: @blob42 (https://t.me/blob42)

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх