在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().

不确定我能得到您的第二个问题。如果您需要验证字符串长度 - 您需要使用此验证器。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top