Добрый день! Сайт написан на php , база mysql . Везде поставлена кодировка utf-8. Из базы выводятся статьи - Код (Text): echo "<td class='tablic2'>".substr($result[traid_mark],0,50)."</td>"; и если количество символов больше , чем в ограничении, то в конце выводится черный ромбик с вопросом внутри. Подскажите что делать. Спасибо.
Проблема может таиться в отсутствии предварительной настройки библиотеки мультибайтных строк. Нужно установить рабочие кодировки.
Моего начального уровня хватит или призывать специалиста? для меня это не знакомые понятия. или смогу разобраться? ккуда смотреть? где искать?
у mb_substr() есть последний параметр: кодировка. Укажите его. Или в начале используйте mb_internal_encoding
Вообще, должно хватить. Но я тут наблюдаю проблемы в общении с мануалом. Так что может и не хватить... Вот описание функции mb_substr() - https://secure.php.net/manual/en/function.mb-substr.php Сигнатура как у однобайтного брата, за исключением дополнительного параметра - кодировки строки. Если он не указан - подставляется текущее значение внутренней кодировки. Её можно установить через https://secure.php.net/manual/en/function.mb-internal-encoding.php
Свершилось чудо! Вписал Код (Text): mb_internal_encoding("UTF-8"); прямо в цикл, который выводит статьи на страницу и все ночные приведения исчезли! Возможно я сделал не правильно, у меня действительно проблема чтения мануала, пока что он для меня написан на недоступном языке для понимания. Если я что сделал не так, буду рад комментарию. Спасибо
Конкретизирую - сделал так: Код (Text): while ($result = mysql_fetch_array($sql)) { .... mb_internal_encoding("UTF-8"); .....} не правильно? вписать выше цикла или ниже цикла?
Откуда вообще такие вопросы возникают? Функция устанавливает значение. Один раз. Но ты это делаешь внутри цикла. Зачем? Вынеси из цикла. Вверх или вниз? Ну если ты в теле цикла не работаешь с мультибайтными функциями, то тебе не принципиально устанавливать кодировку до тела цикла. Выноси вниз. А если работаешь - значит кодировка к этому момент уже должна быть установлена. Выноси вверх. Всё логично?