Zend形式的英镑符号(£)长度或字符集问题?

时间:2011-08-25 12:26:42

标签: php zend-framework character-encoding passwords zend-form

我的密码字段(Zend Form)允许字符串长度为6,20

但是当我输入“guru£”(字符串lenth 5:fasle)时,它返回true而没有minlenth错误,同时如果我输入“guru $$$”(字符串长度:true)则返回最大lenth错误。

任何人都可以帮我解决这个问题。并提前致谢 - Guru

2 个答案:

答案 0 :(得分:3)

您似乎使用了一些多字节字符编码,可能是UTF-8。您必须明确告诉Zend_Validate以使其正常工作:

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

或者您可以在创建验证器对象时执行此操作:

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

请参阅Zend Framework手册中的Zend_Validate > Encoding of values

答案 1 :(得分:0)

您使用的是Zend Validation类吗?

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

我认为特别值得注意的是使用不同的语言部分。