Перейти к контенту
  • 0

Проблемы с кодировкой при обрезании текста


DAS-X

Вопрос

Добрый день.

Решил обновить динозавра 2.3 до более актуальной версии. Наткнулся на известную проблему с кодировкой, но в необычном месте (см.вложение). То есть везде все символы отображаются нормально, кроме обрезанного текста. Все таблицы в urf8-general-ci. Куда можно копнуть?

 

post-13780-0-69622300-1421679780_thumb.png

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0

тут такое дело - в таблице уже записаны символы в двухбайтном виде, и при обрезании может случиться такое, что один байт вылезет (от одной буквы), а второй обрежется - получаем картинку

как исправить - можно искать в гугле

а вообще в идеале переписать весь код форума, где есть substr и подобное, на mb_substr и аналогичное

 

P.S. ах, да, в тройке ничего нельзя переписывать, атониабнавишься

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Ну вроде локализация для того и сделана, чтоб эти все mb добавить где надо. И еще надо посмотреть на кодировку соединения. Бывает, что таблица в UTF, а соединение в latin1 и все функции думают, что это однобайтовая кодировка.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

тут такое дело - в таблице уже записаны символы в двухбайтном виде, и при обрезании может случиться такое, что один байт вылезет (от одной буквы), а второй обрежется - получаем картинку

как исправить - можно искать в гугле

а вообще в идеале переписать весь код форума, где есть substr и подобное, на mb_substr и аналогичное

 

P.S. ах, да, в тройке ничего нельзя переписывать, атониабнавишься

Так то я понимаю, что проблема именно в этом, и даже про нелюбовь к mbstring'у знаю... Не совсем понимаю, как запрос сформулировать.

Конвертация в utf8mb4 решает проблему?

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Не решит. Тут с 2х-то байтовой последовательностью проблема, а у вас 4х байтовая будет. Вообще, мне казалось, что даже в оригинальной версии проблема была решена как минимум в 3.4.6, а то и раньше. На 3.4.6 на ипсовском хостинге http://ibresource.invisionconnect.com/проблемы не видно, значит mb там все=таки есть. 
Все mb* функции в ipb вызываются через враппер, который проверяет их наличие. Проверьте есть ли у вас расширение  mb_string вообще , может оказаться все гораздо проще - его просто нет.
 

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Не решит. Тут с 2х-то байтовой последовательностью проблема, а у вас 4х байтовая будет. Вообще, мне казалось, что даже в оригинальной версии проблема была решена как минимум в 3.4.6, а то и раньше. На 3.4.6 на ипсовском хостинге http://ibresource.invisionconnect.com/проблемы не видно, значит mb там все=таки есть. 

Все mb* функции в ipb вызываются через враппер, который проверяет их наличие. Проверьте есть ли у вас расширение  mb_string вообще , может оказаться все гораздо проще - его просто нет.

 

Есть конечно mbstring. И latin1 в помине не было... Везде стоит utf8.

Починил

Изменено пользователем DAS-X
Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.