Перейти к контенту
  • 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
Ссылка на комментарий
Поделиться на других сайтах

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

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

Гость
Ответить на вопрос...

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

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

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

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

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

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

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

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