Длина символа фунта (£) или проблема кодировки в форме Zend? - PullRequest
0 голосов
/ 25 августа 2011

поле моего пароля (Zend Form) допускает длину строки 6,20

, но когда я набираю "guru £" (строка длиной 5: fasle), он возвращает true без ошибки minlenth, и в то же время, если я набираю "guru ££££" (длина строки: true), он возвращает ошибку max lenth. ,

Может ли кто-нибудь помочь мне пересмотреть это. и заранее спасибо - Гуру

Ответы [ 2 ]

3 голосов
/ 25 августа 2011

Вы, похоже, используете какую-то многобайтовую кодировку символов, вероятно, UTF-8. Вы должны явно сообщить об этом Zend_Validate, чтобы он работал правильно:

$validator->setEncoding("UTF-8");

Или вы можете сделать это при создании объекта валидатора:

$validator = new Zend_Validate_StringLength(
    array('min' => 6, 'max' => 20, 'encoding' => 'UTF-8')
);

См. Zend_Validate> Кодирование значений в руководстве Zend Framework.

0 голосов
/ 25 августа 2011

Используете ли вы класс Zend Validation?

http://framework.zend.com/manual/en/zend.validate.set.html

Особо следует отметить раздел Использование разных языков, я думаю.

...