zend_validate_stringlength编码?
-
25-10-2019 - |
题
在Zend框架中, Zend_Validate_StringLength
具有可用于在不同角色集之间转换的编码属性(它使用 iconv_set_encoding
在字符串上)。
为什么这部分是 StringLength
验证器类?我应该将其与字符串长度字段检查使用以强制执行UTF-8?
解决方案
PHP中的字符串长度是为保存字符串所需的字节数。一些编码使用多个字节(例如两个)存储单个字符。
因此,如果您使用编码在多个字节中存储某些字符(例如Unicode UTF-8),则需要使用此编码来正确确定字符串长度。如果使用默认编码设置,则可能会获得不准确的结果。
但是,我相信所有Zend组件的默认值是UTF-8,它是Web应用程序中的事实上的标准。可惜,这不是PHP(尚未)的默认一个。
其他提示
实际上它使用了 iconv_set_encoding
仅在当前服务器支持指定的情况下测试 $encoding
. 。实际比较是与 iconv_strlen()
.
不确定我能得到您的第二个问题。如果您需要验证字符串长度 - 您需要使用此验证器。
不隶属于 StackOverflow