Я не думаю, что перегрузка всех функций с помощью mb_string была бы хорошей, мы все знаем, что PHP не обрабатывает utf8 изначально, поэтому мы используем что-то вроде
"SET NAMES utf8" для базы данных, и мыиспользуйте Zendmail + передать кодировку ему в качестве параметра, чтобы позволить Zend mail самостоятельно управлять им внутренне
другой пример - Zend_Validate_StringLength
он имеет параметр с именем encoding
и использует iconv
в функции с именем:
public function setEncoding($encoding = null)
{
if ($encoding !== null) {
$orig = iconv_get_encoding('internal_encoding');
$result = iconv_set_encoding('internal_encoding', $encoding);
if (!$result) {
require_once 'Zend/Validate/Exception.php';
throw new Zend_Validate_Exception('Given encoding not supported on this OS!');
}
iconv_set_encoding('internal_encoding', $orig);
}
$this->_encoding = $encoding;
return $this;
}
но вы всегда будете использовать mb_string в своем приложении в какой-то логике, не связанной с фреймворком.
например, вчера я сортировал массив записей и комментариев utf8 из базы данных
я не смог бы выполнить работу без использования строки mb, потому что php не обрабатывает utf8 изначально :(
я люблю строку mb, это сделало мою жизнь проще
РЕДАКТИРОВАТЬ: что я хотел сказать, так это использовать mbstring всякий раз, когда вам это нужно, и позволить фреймворку управлять самим собой, мне не нравится автоматическая перегрузка всех функций.