Спасибо за наводку, покопался.
в t3lib/class.t3lib_tcemain.php функция checkValue_input:
PHP код:
// Secures the string-length to be less than max. Will probably make problems with multi-byte strings!
if (intval($tcaFieldConf['max'])>0) {$value = substr($value,0,intval($tcaFieldConf['max']));}
Этот substr, как и предупреждается, режет utf8-строку из поля ввода побайтово.
Дальше варианты:
1) Если руками заменить на mb_substr с указанием utf-8 - работает нормально.
2) Если включить в php.ini
Код:
mbstring.internal_encoding = UTF-8
mbstring.func_overload = 2
то поля ввода обрабатываются тоже правильно, но взамен слетает кодировка в clickmenu.
Куда копать дальше?