utf8 - при сохранении урезает строку
И снова про кодировку.
Форум читал. typo3 4.0.3 php 4.4.4 Mysql 4.1.22 phpmyadmin показывает character set везде utf8, collation везде utf8_unicode_ci. $TYPO3_CONF_VARS['SYS']['setDBinit'] = 'SET NAMES utf8;'; (вариант: $TYPO3_CONF_VARS['SYS']['setDBinit'] = 'SET NAMES utf8;'.chr(10).'SET CHARACTER SET utf8;') $TYPO3_CONF_VARS['BE']['forceCharset'] ='utf-8'; $TYPO3_CONF_VARS['SYS']['multiplyDBfieldSize'] = 1; Например, в таблице be_users поле username varchar(20) (utf8_unicode_ci). При сохранении через BE имя пользователя русскими буквами без ошибок молча урезается до 10 символов. Если через phpmyadmin записать туда "длинное_русское_имя" - в BE оно корректно читается и показывается, но при попытке изменить и сохранить опять урезается. Что я упустил? |
Сталкивался... всех условий вспомнить не могу, но причина в том, что валидация полей TYPO3 работает "по-байтово". Чем грозит, думаю обяснять не нужно.
Почему так, не разбирался. Возможно не совсем корректно настроен PHP (не корректная поддержка UTF-строк). Если причина в PHP и решите с помошью настроек, просьба отписать в этот тред... Кстати баг репорт TYPO3 не смотрели? Быстрое решение: поправить TCA увеличив размеры в двое. Прописать в localconf.php: Код:
$TCA['be_users']['columns']['username']['config']['size'] = 40; |
Спасибо за наводку, покопался.
в t3lib/class.t3lib_tcemain.php функция checkValue_input: PHP код:
Дальше варианты: 1) Если руками заменить на mb_substr с указанием utf-8 - работает нормально. 2) Если включить в php.ini Код:
mbstring.internal_encoding = UTF-8 Куда копать дальше? |
похоже - это minor баг
так что ему прямая дорога в баг трекер по mb_substr и checkValue_input там есть 2 бага, но не те http://bugs.typo3.org/view.php?id=2776 http://bugs.typo3.org/view.php?id=2020 |
Логично использовать t3lib_cs::substr, отписал баг репорт #4781.
У себя пропатчил checkValue_input() так: PHP код:
Не знаю только, стоило столько городить или достаточно было парой строк ограничиться. |
|
Часовой пояс GMT +4, время: 22:25. |
Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot